如何将请求从一个Apache服务器传递到另一个

如何将请求从一个Apache服务器传递到另一个

我有两个已启用的 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.comwww.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 文档了解更多提示和技巧。

参考

相关内容