HAProxy পুনঃসংযোগ সম্পর্কিত বাস্তব দ্রুত প্রশ্ন। আমি অনুরোধটি যে ব্যাকএন্ডে প্রেরণ করা হয়েছে তা আবার লিখতে / প্রতিস্থাপন করার চেষ্টা করছি।
আমার নিম্নোক্ত উদাহরণ ডোমেন এবং ইউআরআই রয়েছে, উভয়ই একই ডোমেন নাম ভাগ করে নিচ্ছে তবে বিভিন্ন ব্যাকএন্ড ওয়েব সার্ভার পুল রয়েছে।
http://domain/web1
http://domain/web2
আমি চাইব ওয়েব 1 ব্যাকএন্ড ওয়েবফার্ম 1 এ, এবং ওয়েব 2 ওয়েবফর্ম 2 এ যেতে চাই। বর্তমানে এটি ঘটে। তবে আমি অনুরোধটি ব্যাকএন্ডে প্রেরিত হওয়ার পরে আমি ওয়েব 1 বা ওয়েব 2 ইউআরআই বন্ধ করতে চাই।
এখানে আমার haproxy.cfg
frontend webVIP_80
mode http
bind :80
#acl routing to backend
acl web1_path path_beg /web1
acl web2_path path_beg /web2
#which backend
use_backend webfarm1 if web1_path
use_backend webfarm2 if web2_path
default_backend webfarm1
backend webfarm1
mode http
reqrep ^([^\ ]*)\ /web1/(.*) \1\ /\2
balance roundrobin
option httpchk HEAD /index HTTP/1.1\r\nHost:\ example.com
server webtest1 10.0.0.10:80 weight 5 check slowstart 5000ms
server webtest2 10.0.0.20:80 weight 5 check slowstart 5000ms
backend webfarm2
mode http
reqrep ^([^\ ]*)\ /web2/(.*) \1\ /\2
balance roundrobin
option httpchk HEAD /index HTTP/1.1\r\nHost:\ example.com
server webtest1-farm2 10.0.0.110:80 weight 5 check slowstart 5000ms
server webtest2-farm2 10.0.0.120:80 weight 5 check slowstart 5000ms
যদি আমি এটিতে যাই http://domain/web1
বা http://domain/web2
আমি এটি ত্রুটিযুক্ত লগগুলিতে দেখতে পাই যে প্রতিটি ব্যাকএন্ডে একটি সার্ভারে অনুরোধটি রিকাস্ট যথাক্রমে রিসোর্স / ওয়েব 1 বা / ওয়েব 2 এর জন্য। সুতরাং আমি বিশ্বাস করি যে আমার নিয়মিত প্রকাশের সাথে এখানে কিছু ভুল আছে, যদিও আমি এটি ডকুমেন্টেশন থেকে অনুলিপি করে আটকিয়েছি। http://code.google.com/p/haproxy-docs/wiki/reqrep
সংক্ষিপ্তসার: আমি ইউআরআই এর উপর ভিত্তি করে ট্র্যাফিক রুট করার চেষ্টা করছি, তবে আমি চাই যে HAProxy ইউআরআই কে সরিয়ে নেবে যখন এটি ব্যাকএন্ড পুলটিতে অনুরোধটি প্রেরণ করে।
ধন্যবাদ!
-Jim