লোড-ব্যালেন্সার হিসাবে আমি লম্বা টিটিএল সহ সর্বদা রাউন্ড-রবিন ডিএনএস ব্যবহার করেছি। এটি ব্রাউজারগুলির সাথে এইচটিটিপি / এইচটিটিপিএস পরিষেবাদির জন্য সত্যিই দুর্দান্ত কাজ করে ।
বেশিরভাগ ব্রাউজারগুলি কিছু ধরণের another অন্য আইপিতে পুনরায় চেষ্টা করুন implement বাস্তবায়ন করার কারণে আমি সত্যিই ব্রাউজারগুলির সাথে চাপ দিয়ে থাকি তবে অন্য গ্রন্থাগারগুলি বা সফ্টওয়্যারগুলি কীভাবে একাধিক আইপি সমাধান পরিচালনা করতে পারে তা আমি জানি না।
যখন ব্রাউজারটি একটি সার্ভার থেকে উত্তর না পায়, এটি স্বয়ংক্রিয়ভাবে পরবর্তী আইপি কল করবে এবং তারপরে এটি আটকে থাকবে (যতক্ষণ না এটি ডাউন হয় ... এবং তারপরে অন্যটি চেষ্টা না করে)।
2007 সালে ফিরে, আমি নিম্নলিখিত পরীক্ষাটি সম্পন্ন করেছি:
- আমার ওয়েবসাইটে একটি রাউন্ড-রবিন প্রবেশের দিকে ইঙ্গিত করে একটি আইফ্রেমে যুক্ত করুন, যেমন
http://roundrobin.test:10080/ping.php
- পৃষ্ঠাটি 3 পিএইচপি সকেট দ্বারা পরিবেশন করা হয়েছিল, সমস্ত 31080 বন্দরে 3 ডিফারেন্ট আইপি শুনছিল (আমার ওয়েবসাইট এটি চলমান থাকায় আমি 80 বন্দরটিতে পরীক্ষা করতে পারিনি)
- একটি সকেট (বলুন এ ) সেখানে ব্রাউজারটি 10080 বন্দরে সংযোগ করতে পারে কিনা তা পরীক্ষা করার জন্য ছিল (অনেক সংস্থাগুলি কেবলমাত্র মানক বন্দরগুলিকে অনুমতি দেয়)
- অন্য দুটি সকেট ( বি এবং সি বলুন ) উড়তে সক্ষম বা অক্ষম করা যেতে পারে।
আমি এটি এক ঘন্টা চালাতে দিয়েছি, প্রচুর ডেটা ছিল। ফলাফলগুলি হ'ল সকেট এ- এর হিটগুলির 99.5% এর জন্য , আমি সকেট বি বা সি উভয়কেই হিট করেছি (অবশ্যই আমি উভয়টিকে একই সময়ে অক্ষম করি নি)। ব্রাউজারগুলি হচ্ছিল: আইফোন, ক্রোম, অপেরা, এমএসআইই 6/7/8, ব্ল্যাকবেরি, ফায়ারফক্স 3 / 3.5 ... সুতরাং এমনকি-সেই-অনুমানযোগ্য ব্রাউজারগুলিও এটি সঠিকভাবে পরিচালনা করছে!
আজ অবধি, আমি এটি আর কখনও পরীক্ষা করিনি, তবে সম্ভবত আমি একদিন একটি নতুন পরীক্ষা সেটআপ করব বা গিথুবে কোডটি প্রকাশ করব যাতে অন্যরা এটি পরীক্ষা করতে পারে।
গুরুত্বপূর্ণ দ্রষ্টব্য: এটি বেশিরভাগ সময় কাজ করলেও এটি কিছু অনুরোধ ব্যর্থ হবে এই সত্যটি সরিয়ে দেয় না । আমি এটি পোষ্ট অনুরোধগুলির জন্যও ব্যবহার করি, কারণ আমার অ্যাপ্লিকেশনটি যদি কাজ না করে তবে একটি ত্রুটি বার্তা ফিরিয়ে দেবে, যাতে ব্যবহারকারী আবার ডেটা প্রেরণ করতে পারে এবং সম্ভবত ব্রাউজারটি এই ক্ষেত্রে অন্য আইপি ব্যবহার করবে এবং সেভ কাজ করবে । এবং স্থির সামগ্রী জন্য, এটি সত্যিই দুর্দান্ত কাজ করছে।
সুতরাং আপনি যদি ব্রাউজারগুলির সাথে কাজ করছেন তবে রাউন্ড-রবিন ডিএনএস ব্যবহার করুন না হয় স্থির বা গতিশীল সামগ্রীর জন্য, আপনি বেশিরভাগই ভাল থাকবেন। সার্ভারগুলি কোনও লেনদেনের মাঝখানেও নামতে পারে এবং সর্বোত্তম লোড-ব্যালেন্সারের সাহায্যে আপনি এ জাতীয় কেস পরিচালনা করতে পারবেন না। গতিশীল বিষয়বস্তুর জন্য আপনাকে আপনার সেশন / ডাটাবেস / ফাইলগুলি সিঙ্ক্রোনাস করতে হবে, অন্যথায় আপনি এটি পরিচালনা করতে সক্ষম হবেন না (তবে এটি সত্যিকারের লোড-ব্যালেন্সারের সাথেও সত্য)।
অতিরিক্ত নোট: আপনি নিজের আইপি ব্যবহার করে আচরণটি পরীক্ষা করতে পারেন iptables
। উদাহরণস্বরূপ, এইচটিটিপি ট্র্যাফিকের জন্য আপনার ফায়ারওয়াল নিয়মের আগে, যুক্ত করুন:
iptables -A INPUT -p tcp --dport 80 --source 12.34.56.78 -j REJECT
( 12.34.56.78
স্পষ্টতই আপনার আইপি কোথায় )
ফিল্টার ফিল্টারDROP
ছেড়ে যাওয়ার সাথে সাথে এটি ব্যবহার করবেন না এবং আপনার ব্রাউজারটি সময় শেষ না হওয়া পর্যন্ত অপেক্ষা করবে। সুতরাং এখন, আপনি একটি সার্ভার বা অন্যটিকে সক্ষম বা অক্ষম করতে পারেন। সর্বাধিক সুস্পষ্ট পরীক্ষা হ'ল সার্ভার এ অক্ষম করা, পৃষ্ঠাটি লোড করুন, তারপরে সার্ভার এ সক্ষম করুন এবং সার্ভার বি অক্ষম করুন আপনি যখন পৃষ্ঠাটি আবার লোড করবেন, আপনি ব্রাউজার থেকে কিছুটা অপেক্ষা করতে দেখবেন, তবে এটি সার্ভার থেকে লোড হবে আবার। Chrome এ, আপনি নেটওয়ার্ক প্যানেলে অনুরোধটি দেখে সার্ভারের আইপি নিশ্চিত করতে পারেন। এর ট্যাবে আপনি একটি নকল শিরোনামের নাম দেখতে পাবেন । এটি সেই আইপি যেখানে থেকে আপনি উত্তর পেয়েছেন।General
Headers
Remote Address:
সুতরাং, যদি আপনাকে একটি সার্ভারে রক্ষণাবেক্ষণ মোডে যেতে হয়, কেবল একটি iptables
REJECT
নিয়ম দিয়ে এইচটিটিপি / এইচটিটিপিএস ট্র্যাফিক অক্ষম করুন , সমস্ত অনুরোধগুলি অন্যান্য সার্ভারগুলিতে যাবে (একটি সামান্য অপেক্ষা সহ, ব্যবহারকারীদের জন্য প্রায় লক্ষণীয় নয়)।