【问题标题】:Redirect to a different apache server for a Domain but keep URL the same为域重定向到不同的 apache 服务器,但保持 URL 相同
【发布时间】:2014-09-04 10:28:40
【问题描述】:

希望这很容易做到 - 我就是想不通!

如果我有任何术语错误,我提前道歉。我对网络服务器的了解并不高明!

我在一个域中有两台 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 重写来实现解决方案。

提前感谢您的帮助

【问题讨论】:

    标签: apache redirect proxy reverse-proxy ports


    【解决方案1】:

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

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

    【讨论】:

    • 我明天试试这个。目前我无法从家里访问服务器。您能否向我解释一下 ProxyPreserveHost 行的用途以及我为什么需要它?
    • 它确保主机头保持设置。如果您的第二台 Apache 服务器正在做虚拟主机,您可能需要这个。如果第二个 Apache 上只有一个站点,您可能没有。如果您不确定,设置它可能更安全。
    • ProxyPreserveHost On 遇到了很多问题。我遇到了this SO question 中提到的问题。只是留下它作为其他人的评论。它与ProxyPreserveHost Off 合作
    猜你喜欢
    • 2015-02-13
    • 1970-01-01
    • 2011-05-25
    • 2014-08-05
    • 2012-06-06
    • 1970-01-01
    • 2015-09-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多