मैं पढ़ता हूं और फिर से पढ़ता हूं nginx प्रॉक्सी_पास डॉक्स। मुझे लगा कि मैंने इसे तब तक समझा जब तक मैंने खर्च नहीं कियाअंतिम घंटे में एक त्रुटि हो रही है जो कि "समझ में नहीं आती है। समान समस्या वाले अन्य लोग" इससे संबंधित नहीं हैं। कल मेरा पहला दिन था I चल रहा है nginx v1.12.2।
जब कोई अनुरोध करता है https://example1.com/just-right/search
मैं उस अनुरोध को प्रॉक्सी करना चाहता हूं https://example2.com/abc.php
location ~ /just-right/search {
proxy_pass https://example2.com/abc.php;
}
प्रॉक्सी_पास में परिभाषित पथ को समीप लाने के बजाय मुझे त्रुटि मिलती है:
"proxy_pass" cannot have URI part in location given by regular expression, or inside named location, or inside "if" statement, or inside "limit_except" block in line .......
मैं एक नियमित अभिव्यक्ति का उपयोग नहीं कर रहा हूँ। "नामित स्थान" का क्या अर्थ है? यह एक कथन या "limit_except" ब्लॉक के अंदर नहीं है, तो मैंने क्या गलत किया?
उत्तर:
उत्तर № 1 के लिए 1जब आप अपने स्थान ब्लॉक में टिल्ड (~) का उपयोग करते हैं, तो स्थान की व्याख्या एक नियमित अभिव्यक्ति मैच के रूप में की जाती है। इसे निकालें और इसे बिना त्रुटि के संसाधित करना चाहिए।
यहां दस्तावेज़ देखें: https://nginx.org/en/docs/http/ngx_http_core_module.html#location