ProxyPreservehost trên các quy tắc proxypass riêng lẻ


8

Tôi có hai quy tắc proxypass trên máy chủ web của mình, một quy tắc trỏ đến một trường hợp véc ni cục bộ cho mục đích lưu trữ, mà tôi muốn ProxyPreservehost được kích hoạt và một quy tắc khác trỏ đến trang web được lưu trữ của bên thứ ba mà tôi muốn ProxyPreservehost bị vô hiệu hóa. Có cách nào tôi có thể làm điều này trên cơ sở cho mỗi quy tắc / vượt qua không?

Câu trả lời:


13

Trong Apache 2.2, không - lệnh ProxyPreserveHostchỉ có hiệu lực trong cấu hình máy chủ hoặc bối cảnh máy chủ ảo ; bạn cần các ProxyPasscâu lệnh khác nhau trong các máy chủ ảo khác nhau.

Trong Apache 2.4, có - bối cảnh thư mục đã được thêm vào cho lệnh , vì vậy bây giờ bạn có thể thực hiện một số việc như:

<Location /to-varnish/>
    ProxyPreserveHost On
    ProxyPass http://127.0.0.1:8000/to-varnish/
</Location>
<Location /to-third-party/>
    ProxyPreserveHost Off
    ProxyPass http://third-party-site.com/
</Location>

3

Bạn có thể với sự giúp đỡ của RequestHeader

ProxyPreserveHost On
<LocationMatch third-party-pattern>
   RequestHeader  set  Host  third-party-vhost-name
   ProxyPassMatch  http://third-party-server
</LocationMatch>
<LocationMatch varnish-pattern>
   ProxyPassMatch  http://varnish-server
</LocationMatch>

0

Tôi không thể nâng cao phản ứng của Sorin ...

Trong tình huống cục bộ của chúng tôi chạy Apache 2.2 và ứng dụng chính yêu cầu proxypreservehost (tác giả CQ / AEM) để đăng nhập, nhưng đối tác chúng tôi ủy quyền để yêu cầu máy chủ của họ trong tiêu đề máy chủ.

Chúng ta không cần phải làm điều này với regex, một <Location...>công việc bình thường vẫn hoạt động tốt.

Từ tài liệu ( http://httpd.apache.org/docs/2.2/mod/core.html#location ):

Lệnh này giới hạn phạm vi của các chỉ thị kèm theo URL.

Giải pháp này hiệu quả với chúng tôi:

  <Location /[path]/ >
    RequestHeader set Host [thirdparty]
  </Location>
  RewriteRule ^/[path]/(.*) https://[thirdparty]/$1 [P,NC,L]

Điều này đặt tiêu đề máy chủ cho yêu cầu này thành tên máy chủ của đối tác.

Với điều đó, chúng tôi có thể tiếp tục đăng nhập vào CQ / AEM tác giả VÀ proxy cho dịch vụ đối tác bằng tiêu đề máy chủ dự kiến ​​của họ.

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.