स्लैश के साथ या उसके बिना प्रॉक्सी को कैसे रिवर्स करें


11

मेरे पास एक अपाचे वेब सर्वर है जो किसी साइट को प्रॉक्सी रिवर्स करने की आवश्यकता है। तो example.com/test/या example.com/testउसी वेबसर्वर से खींचें। मैं इस तरह के पीछे चल स्लैश के बिना एक के लिए एक रिवर्स प्रॉक्सी सेटअप है:

ProxyPass /test http://othersite.com/test
ProxyPassReverse /test http://othersite.com/test

लेकिन यह एक अनुगामी स्लेश के साथ काम नहीं करता है।

कोई विचार? मैं से पुन: निर्देशित की कोशिश की है /test/करने के लिए /testकोई भाग्य के साथ।

धन्यवाद।

जवाबों:


18

क्या आपने यूआरएल को फिर से लिखने की कोशिश की है?

RewriteEngine on 
RewriteRule ^/test$ /test/ [R]

ProxyRequests Off       
ProxyPreserveHost On

ProxyPass    /test/   http://othersite.com/test/
ProxyPassReverse /test/  http://othersite.com/test/

1

तुम्हारा क्या मतलब है कि यह एक अनुगामी स्लेश के साथ काम नहीं करता है? क्या यह गलत जगह पर पुनर्निर्देशित करता है? क्या यह 404 त्रुटि देता है? यह वही है जो मैंने एक रिवर्स प्रॉक्सी सेट करने और शेष दुनिया से स्रोत को छिपाने के लिए उपयोग किया।

ProxyRequests off
<Location /guides>
  ProxyPass http://blog.domain.com
  ProxyPassReverse http://blog.domain.com
  ProxyPassReverse /
  ProxyHTMLEnable On
  ProxyHTMLURLMap / /guides
  ProxyHTMLURLMap http://blogs.domain.com /guides
  RequestHeader unset Accept-Encoding
  RequestHeader set MySpecialHeader secretkey
  #LogLevel proxy:debug
</Location>

आप अपने प्रॉक्सी का परीक्षण करने के लिए इसका उपयोग कर सकते हैं:

$ curl -I http://localhost:81/guides/top5
HTTP/1.1 301 Moved Permanently
Location: http://localhost:81/guides/top5/
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.