如何设置apache 2反向代理转发不同的域并假装为该域名?

时间:2016-11-26 21:28:23

标签: apache http-headers reverse-proxy

我正在使用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标头,但我不知道如何。任何帮助都将受到高度赞赏。

1 个答案:

答案 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标题来决定要投放的内容,否则您就会很好。