我有两个已启用的 Apache 服务器mod_proxy
。我想知道如何使用相同的端口 ( ) 将请求从“Apache 服务器 A”传递到“Apache 服务器 B” 80
。
使用server A
内部 IP:192.168.0.5
我已经配置了 DNS,并且我也将其用作我的邮件服务器。
使用server B
内部ip:192.168.0.10
我有自己的云服务器。
今天,当我访问wwww.mydomain.com
或www.mydomain.com/webmail
一切正常时,因为内容全部在内server A
,我需要的是当有人试图访问时,owncloud.mydomain.com
他们可以访问我的server B
,而不需要将他们重定向到另一个端口,就像owncloud.mydomain.com:81
,我只想使用端口一样80
。
实际上,我遇到了重定向循环,因为当我尝试重定向时,我猜想server A
自己会收到相同的请求。我已将虚拟主机设置为以相同的方式工作,server A
我想要的是使用相同的端口和 URL“重定向”到另一台服务器(owncloud.mydomain.com
)。
我不想使用其他端口进行重定向。
答案1
您将要在服务器 A 上执行如下操作:
NameVirtualHost *
<VirtualHost *>
ServerName owncloud.mydomain.com
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://192.168.0.10:80/
ProxyPassReverse / http://192.168.0.10:80/
<Location />
Order allow,deny
Allow from all
</Location>
</VirtualHost>
根据您的应用程序,您可能需要使用以下一项或全部功能:
- X-Forwarded-For-客户端的 IP 地址。
- X-Forwarded-Host - 客户端在 Host HTTP 请求标头中请求的原始主机。
- X-Forwarded-Server-代理服务器的主机名。
看看mod_proxy 文档了解更多提示和技巧。