【问题标题】:Redirect a virtualhost http & https to another virtualhost server将虚拟主机 http 和 https 重定向到另一个虚拟主机服务器
【发布时间】:2017-04-08 03:14:28
【问题描述】:

我有 2 个 apache 2.4 serverA 和 serverB 和几个虚拟主机。所有传入的请求都到达 serverA。

如何将特定虚拟主机名的 http 和 https 请求从 serverA 转发到 serverB?

我的 wamp ServerA 设置是: 进入我的主机文件 127.0.0.7 example.com

虚拟主机:

<VirtualHost *:*>
    ServerName        example.com
    ProxyPreserveHost On
    ProxyPass         "/" "http://192.168.1.105/"
    ProxyPassReverse  "/" "http://192.168.1.105/"
</VirtualHost>

我的 serverB ip 是 192.168.1.105,我在上面设置了一个同名的虚拟主机 example.com

当我使用 http://example.com 时,我会留在 wamp 主页上,例如 http://localhost 当我使用https://example.com 时,serverA 上出现错误 403(禁止)

【问题讨论】:

    标签: apache http redirect https virtualhost


    【解决方案1】:

    经过漫长的一夜,我找到了解决办法:

    <VirtualHost *:80>
        ProxyPreserveHost On
        ProxyPass         "/" "http://192.168.1.105/"
        ProxyPassReverse  "/" "http://192.168.1.105/"
        ServerName        example.com
    </VirtualHost>
    <VirtualHost *:443>
        SSLProxyEngine on
        SSLCertificateFile    "${APACHE_DIR}/conf/ssl_example.com/server.crt"
        SSLCertificateKeyFile "${APACHE_DIR}/conf/ssl_example.com/server.key"
        ErrorLog  "logs/example.com-ssl_error.log"
        CustomLog "logs/example.com-ssl_access.log" common
        ProxyPreserveHost On
        ProxyPass         "/" "https://192.168.1.105/"
        ProxyPassReverse  "/" "https://192.168.1.105/"
        ServerName        example.com
    </VirtualHost>
    

    【讨论】:

      【解决方案2】:

      在ServerA virtualhost中添加一个简单的:

      Redirect / https://serverb.examample.com/
      

      【讨论】:

      • 如果这不起作用,你要么没有在正确的虚拟主机中添加它,要么你没有到达这个虚拟主机,或者..有其他东西干扰它,比如其他重定向或覆盖.
      猜你喜欢
      • 2016-07-16
      • 2010-10-07
      • 1970-01-01
      • 2019-08-13
      • 2012-02-06
      • 2012-03-29
      • 2012-08-18
      • 2018-09-23
      • 2014-11-04
      相关资源
      最近更新 更多