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

重定向到域的其他apache服务器,但保持URL相同,apache,redirect,proxy,reverse-proxy,ports,Apache,Redirect,Proxy,Reverse Proxy,Ports,希望这很容易做到——我就是想不出来 如果我把术语弄错了,我会提前道歉。我对网络服务器的知识并不渊博 我在一个域中有两个apache服务器。一个在端口80(我们可以称之为Apache1)上监听,另一个在端口10080(Apache2)上监听 我想实现的是,当用户在浏览器的URL栏(比如www.domain.com)中输入某个域地址时,他们会从端口80上的默认服务器重定向到端口10088上侦听的服务器 我使用Apache 1服务器的Apache httpd.conf文件中的Redirect关键字实现

希望这很容易做到——我就是想不出来

如果我把术语弄错了,我会提前道歉。我对网络服务器的知识并不渊博

我在一个域中有两个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>

服务器名www.domain.com
重定向/http://www.domain.com:10088/exampleApp
虽然这样做有效,但不幸的是,它将浏览器中的URL更改为www.domain.com:10088/exampleApp,在这里,我需要它显示给与他们输入的域相同的用户—www.domain.com

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


提前感谢您的帮助

您需要为此使用反向代理:

如果您的两个站点都在同一台服务器上侦听,您可能只需要在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>

服务器名www.domain.com
代理主机
ProxyPass/http://127.0.0.1:10088/exampleApp/
ProxyPassReverse/http://127.0.0.1:10088/exampleApp/

我明天会试试这个。我目前无法从家里访问服务器。你能给我解释一下ProxyPreserveHost行的用途和我为什么需要它吗?它可以确保主机头保持设置。如果您的第二台Apache服务器正在进行虚拟托管,您可能需要这样做。如果第二个Apache上只有一个站点,则可能没有。如果您不确定的话,设置它可能更安全。我在上遇到了很多关于
ProxyPreserveHost的问题。我面临的问题在报告中提到。只是把它作为评论留给别人。它在关闭ProxyPreserveHost的情况下工作