যদিও আপনি এটি দিয়ে এটি অর্জন করতে পেরেছিলেন if, এটি সাধারণত এনগিনেক্স ডকুমেন্টেশন দ্বারা নিরুৎসাহিত করা হয় , কারণ ifঅন্যান্য নির্দেশের সাথে ভাল খেলেন না। উদাহরণস্বরূপ, ধরে নিই যে জিইটি সবার জন্য উন্মুক্ত হওয়া উচিত, যখন পিওএসটি কেবলমাত্র HTTP বেসিক অথথ ব্যবহার করেই অনুমোদনপ্রাপ্ত ব্যবহারকারীদের জন্য। এটির ifসাথে একত্রিত হওয়া auth_basicদরকার যা সঠিকভাবে কাজ করে না।
এখানে একটি বিকল্প রয়েছে যা ছাড়াই কাজ করে if। কৌশলটি হ'ল "জিইটি" এবং "পোষ্ট" প্রবাহের নামের অংশ হিসাবে ব্যবহার করা, যাতে এগুলি পরিবর্তনশীল প্রতিস্থাপনের মাধ্যমে সমাধান করা যেতে পারে:
http {
upstream other_GET {
server ...;
}
upstream other_POST {
server ...;
}
server {
location /service {
proxy_pass http://other_$request_method;
}
}
}
GET ব্যতীত অন্য কিছুর জন্য এইচটিটিপি বেসিক এথের সাথে এটি একত্রিত করতে, কেবল একটি limit_exceptব্লক যুক্ত করুন:
...
location /service {
proxy_pass http://other_$request_method;
limit_except GET {
auth_basic ...;
}
}
...