निगनी को रिवर्स प्रॉक्सी विशिष्ट उपनिर्देशिकाओं से कैसे रोका जाए


12

अपाचे पर आप एक या एक से अधिक उपनिर्देशिका ("!") को छोड़कर सब कुछ प्रॉक्सी कर सकते हैं।

    ProxyPass /subdir !
    ProxyPass / http://localhost:9999/

Nginx समतुल्य है?

मेरा पहला अनुमान स्पष्ट रूप से काम नहीं कर रहा है:

 location /subdir {
      root /var/www/site/subdir;
  }

 location / {
      proxy_pass http://localhost:9999/ ;
  }

जवाबों:


12

आप इस तरह से जिस पथ को पसंद करते हैं, उसके लिए आप प्रॉक्सी_पास को बांध सकते हैं

location = / {
    proxy_pass http://localhost:9999/;
}

इससे यह सुनिश्चित हो जाता है कि कोई और रास्ता नहीं होगा लेकिन /

या

आप इस सिंटैक्स का उपयोग केवल उपनिर्देशिकाओं के मिलान के लिए कर सकते हैं

location ^~ /subdir {
     alias /var/www/site/subdir;
}

location / {
    proxy_pass http://localhost:9999/ ;
}

^~Subdir से मेल खाता है और फिर बंद हो जाता है सर्च कर रहे हैं तो /निष्पादित नहीं किया जाएगा। यह यहाँ वर्णित है


root / var / www / site / subdir मेरे मामले में root / var / www / साइट होना चाहिए, अन्यथा nginx / var / www / site / subdir / subdir को एक्सेस करने का प्रयास करेगा।
टीनस

तुम सही हो। या तो aliasइसके बजाय , या आप उपयोग कर सकते हैंroot
क्रिस्टोफर पेरिन

1
क्या आप इसे ^~और अधिक समझा सकते हैं ? मुझे नहीं मिला कि यह क्या करता है। मैंने आपके द्वारा भेजे गए लिंक को पढ़ने की कोशिश की, लेकिन फिर भी यह नहीं मिल सका। यदि सबसे लंबे मिलान वाले उपसर्ग स्थान में "^ ~" संशोधक है तो नियमित अभिव्यक्तियों की जाँच नहीं की जाती है।
मोहम्मद नौरेलिन

@MohammedNoureldin का अनिवार्य रूप से अर्थ है कि यह एक उपसर्ग को एक पथ से मिलाने का प्रयास करता है और नियमित अभिव्यक्तियों का मूल्यांकन नहीं करता है।
क्रिस्टोफर पेरिन

1
@MohammedNoureldin यह उस पथ का पहला भाग है जिसे आप स्थान के लिए उपयोग करना चाहते हैं। और हाँ यह रेगेक्स के बिना है।
क्रिस्टोफर पेरिन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.