हालाँकि, आप इसे हासिल कर सकते हैं if
, यह आमतौर पर Nginx प्रलेखन द्वारा हतोत्साहित किया जाता है , क्योंकि if
अन्य निर्देशों के साथ अच्छा नहीं खेलता है। उदाहरण के लिए, मान लें कि जीईटी सभी के लिए खुला होना चाहिए, जबकि POST केवल HTTP बेसिक ऑथेंटिक का उपयोग करके प्रमाणित उपयोगकर्ताओं के लिए है। यही कारण है कि आवश्यकता होगी if
के साथ जोड़ा जा करने के लिए auth_basic
है, जो ठीक से काम नहीं करता है।
यहां एक विकल्प है जो बिना काम करता है if
। चाल "GET" और "POST" को अपस्ट्रीम नामों के हिस्से के रूप में उपयोग करने के लिए है, इसलिए इन्हें परिवर्तनीय विकल्प द्वारा संबोधित किया जा सकता है:
http {
upstream other_GET {
server ...;
}
upstream other_POST {
server ...;
}
server {
location /service {
proxy_pass http://other_$request_method;
}
}
}
हर चीज़ के लिए HTTP बेसिक ऑथेंट के साथ इसे मिलाने के लिए, लेकिन एक limit_except
ब्लॉक जोड़ें :
...
location /service {
proxy_pass http://other_$request_method;
limit_except GET {
auth_basic ...;
}
}
...