Làm cách nào để đảo ngược proxy có hoặc không có dấu gạch chéo


11

Tôi có một máy chủ web Apache cần đảo ngược proxy một trang web. Vì vậy, example.com/test/hoặc example.com/testkéo từ cùng một máy chủ web khác. Tôi đã thiết lập một proxy ngược cho cái mà không có dấu gạch chéo như thế này:

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

Nhưng nó không hoạt động với một dấu gạch chéo.

Bất kỳ ý tưởng? Tôi đã cố gắng chuyển hướng từ /test/đến /testkhông có may mắn.

Cảm ơn.

Câu trả lời:


18

Bạn đã thử viết lại url chưa?

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

ProxyRequests Off       
ProxyPreserveHost On

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

1

Bạn có nghĩa là nó không hoạt động với dấu gạch chéo? Nó chuyển hướng đến sai địa điểm? Nó có lỗi 404 không? Đây là những gì tôi đã sử dụng để thiết lập một proxy ngược và ẩn nguồn từ phần còn lại của thế giới.

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>

Bạn có thể sử dụng điều này để kiểm tra proxy của bạn:

$ curl -I http://localhost:81/guides/top5
HTTP/1.1 301 Moved Permanently
Location: http://localhost:81/guides/top5/
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.