আমার নিম্নলিখিত সেটআপ আছে:
|-------|--- backend1:8080
example.com:80---|HAProxy|--- backend2:8080
|-------|--- backend3:8080
আসল url সহ একটি কাস্টম শিরোনাম যুক্ত করতে আমি HAProxy কনফিগার করতে চাই। উদাহরণস্বরূপ যদি ব্যবহারকারী অনুরোধ করে http://example.com/foo?bar=baz
, যেমন:
GET /foo?bar=baz HTTP/1.1
Host: example.com:80
আমি চাই HAProxy এই অনুরোধটিকে ব্যাকএন্ডে অনুবাদ করতে:
GET /foo?bar=baz HTTP/1.1
Host: backend1:8080
x-custom-header: http://example.com/foo?bar=baz
reqadd
বিকল্পটি আমাকে কেবল একটি স্থির মান সহ একটি শিরোনাম যুক্ত করতে দেয়। অনুরোধ থেকে আমি পাথ অংশটি ব্যবহার করে সক্ষম হয়েছি reqrep
:
reqrep ^([^\ ]*)\ ([^\ ]*)\ (HTTP\/1\.[10]) \0\r\nx-custom-header:\ \2
তবে দুর্ভাগ্যক্রমে এটি নীচের শিরোনামের ফলে মূল url এর কেবলমাত্র পথ অংশটি ধারণ করে:
x-custom-header: /foo?bar=baz
সুতরাং আমার প্রশ্নটি হ্যাপি্রোক্সি ১.৪-এHost
কাস্টম শিরোনামে এইচটিটিপি অনুরোধের প্রথম লাইন এবং উভয়কে একত্রিত করা সম্ভব কিনা?
reqadd
কোনও এসিএলের সাথে সংযুক্তি চেষ্টা করেছেন যাbe_id
(ব্যাকএন্ড-আইডি) উল্লেখ করে ? এটিreqirep
স্পষ্টত গতিশীল নয় তবে ব্যাকেন্ডের সংখ্যা কম হলে এটি আপনাকে আরও ঘনিষ্ঠ হতে পারে ... এছাড়াও একটি alচ্ছিক এসিএল সমর্থন করে, তাই আপনি সম্ভবত প্রতিটি ব্যাক-এন্ডের জন্য পৃথক রেজেক্স লিখতে পারেন, প্রতিটি সক্রিয় কেবল তখনই নির্বাচিত ব্যাকএন্ডের সাথে মিলিত হয় - আইডি।