মূলত অনুরোধ করা সংস্থার সম্পূর্ণ ঠিকানা সম্বলিত কাস্টম শিরোনাম কীভাবে যুক্ত করবেন add


11

আমার নিম্নলিখিত সেটআপ আছে:

                 |-------|--- 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চ্ছিক এসিএল সমর্থন করে, তাই আপনি সম্ভবত প্রতিটি ব্যাক-এন্ডের জন্য পৃথক রেজেক্স লিখতে পারেন, প্রতিটি সক্রিয় কেবল তখনই নির্বাচিত ব্যাকএন্ডের সাথে মিলিত হয় - আইডি।
মাইকেল - স্কেলবট

উত্তর:


18

সংক্ষিপ্ত উত্তর: না, আপনি HAProxy 1.4 এ এটি করতে পারবেন না ।


যাইহোক, 1.5+ এ এই প্রশ্নটি যারা খুঁজেছেন তাদের জন্য:

HAProxy 1.5+ তে আপনি %[variable]সিনট্যাক্সের মাধ্যমে ভেরিয়েবলগুলি উল্লেখ করতে পারেন এবং আপনি কেবল স্থির স্ট্রিং ব্যবহার করেই সীমাবদ্ধ নন। HAProxy কনফিগারেশন গাইডের 7.3 বিভাগে (বিশেষত স্তর 7 ভেরিয়েবলের জন্য 7.3.6 ) কোন ভেরিয়েবল ইতিমধ্যে বিদ্যমান তা দেখতে পাবেন ।

আপনার ক্ষেত্রে, আপনি কাঁচা দিকে তাকিয়ে আছেন url:

http-request set-header X-Custom-Header %[url]

1
আমার সিদ্ধান্তে নিশ্চিত হওয়ার জন্য ধন্যবাদ যে এটি 1.4 এ সম্ভব নয়। আমি স্যুইচ করেছি nginx
দারিন দিমিত্রভ

% [url] সর্বদা সম্পূর্ণ URL নয়, তবে এটি হ্যাপ্রোক্সি সবচেয়ে ভাল করতে পারে বলে মনে হয়। HAProxy 1.8 URL টি পরিবর্তনশীল দস্তাবেজ: cbonte.github.io/haproxy-dconv/1.8/configuration.html#7.3.6-url
zie
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.