我正在使用Debian和apache2,我不知道是否可以使用apache将代理从一个域反向到另一个域,但后一个服务器后面的后端服务器仍然认为请求的URL是后者?
例如,如果您访问https://www.example.com/index.html,请求会转发到https://www.example.org/index.html,但在www.example.org的后端服务器中仍然认为请求的网址是https://www.example.org/index.html,而不是{ {3}}
我认为我需要在apache代理中更改X-Forwarded-Server标头,但我不知道如何。任何帮助都将受到高度赞赏。
答案 0 :(得分:1)
您描述的行为是默认行为:
如果example.com
具有以下配置:
ProxyPass / http://example.org/
我转到http://example.com/
,然后example.org会看到以下请求(请查看Host
标题):
GET / HTTP/1.1
Host: example.org
[...]
X-Forwarded-For: <client IP address>
X-Forwarded-Host: example.com
使用ProxyPreserveHost On
,您可以更改此行为并获取
GET / HTTP/1.1
Host: example.com
[...]
X-Forwarded-For: <client IP address>
X-Forwarded-Host: example.com
除非example.org
使用X-Forwarded-Host
标题来决定要投放的内容,否则您就会很好。