আমি একটি নির্দিষ্ট কনফিগারেশন সহ কেবলমাত্র 2 টি ব্যাকএন্ড সার্ভারের সামনে একটি HAProxy সেট আপ করছি: যে কোনও অনুরোধ সার্ভার এ এ যাওয়া উচিত; তবে, সার্ভার এ যদি 5xx ত্রুটি কোডটি দেয়, সমস্ত অনুরোধটি একটি ব্যাকআপ সার্ভার বিতে যাওয়া উচিত A
আমি এই কনফিগারেশন চেষ্টা করছি:
backend example_cluster
balance roundrobin
option httpclose
option forwardfor
option httpchk HEAD /ping.html HTTP/1.0\r\nHost:www.example.com
http-check disable-on-404
default-server error-limit 1 on-error mark-down
redirect scheme https if !{ ssl_fc }
server node1 1.2.3.4:80 check observe layer7
server node_back 5.6.7.8:443 backup ssl verify none
তবে এটি দুটি কারণে কার্যকর হয় না:
- সমস্ত অনুরোধগুলি সার্ভার নোড_ব্যাক (বি) এ পাঠানো হয়েছে, এমনকি নোড 1 (এ) শেষ হলে।
- দেখে মনে হচ্ছে যে সার্ভার এ-এর বিপরীতে কোনও HTTP চেক করা হয় না; বা আরও ভাল, সিসলগে আমি সার্ভার এ ডাউন সম্পর্কে কোনও ত্রুটি দেখতে পাচ্ছি না।
যদি আমি "অপশন httpchk" লাইনটি এবং তার ঠিক নীচে দুটি লাইন সরিয়ে ফেলি; এবং আমি সার্ভার এ "পর্যবেক্ষণ স্তর 7" অপসারণ করি; ন্যাপ এ-এর সমস্ত অনুরোধগুলি রাউটিং করে HAProxy কাজ করে তবে স্পষ্টতই, সার্ভার A যখন 500 প্রদান করে, HAProxy বি তে স্যুইচ করে না, তাই আমি ধরে নিচ্ছি যে সমস্যাটি httpchk কনফিগারেশনে থাকতে পারে।