重定向到域的其他apache服务器但保持URL相同

时间:2014-07-14 13:30:26

标签: apache redirect proxy reverse-proxy ports

希望这很容易做到 - 我无法弄明白!

如果我得到任何错误的术语,我会提前道歉。我对网络服务器的了解并不出色!

我在一个域中有两个apache服务器。一个是侦听端口80(我们可以称之为Apache1),另一个是端口10080(Apache2)。

我想要实现的是当用户在浏览器的URL栏中输入某个域地址(比如www.domain.com)时,他们会从端口80上的默认服务器重定向到侦听端口的服务器10088

我使用Apache 1服务器的Apache httpd.conf文件中的Redirect关键字实现了这一点,如下所示: -

<VirtualHost *:80>
ServerName www.domain.com
Redirect / http://www.domain.com:10088/exampleApp
</VirtualHost>

虽然这很有效,但不幸的是,它将浏览器中的URL更改为www.domain.com:10088/exampleApp,我需要将其显示给用户输入相同的域名 - www.domain.com

我尝试过使用ProxyPass和ReverseProxyPass,但我可以让它工作。我不知道是否可以使用URL重写来实现解决方案。

提前感谢您提供任何帮助

1 个答案:

答案 0 :(得分:6)

您需要使用反向代理:

如果您的两个站点都在同一台服务器上侦听,您可以直接在localhost(127.0.0.1)上进行代理。如果没有,请确保可以从Apache1解析域名

<VirtualHost *:80>
  ServerName www.domain.com

  ProxyPreserveHost On
  ProxyPass / http://127.0.0.1:10088/exampleApp/
  ProxyPassReverse / http://127.0.0.1:10088/exampleApp/
</VirtualHost>