【问题标题】:Reverse proxy from apache to IIS always fails with a 404从 apache 到 IIS 的反向代理总是以 404 失败
【发布时间】:2015-03-27 15:17:34
【问题描述】:

我正在尝试设置从 apache 到 IIS 7 服务器的反向代理。

我已经设置了非常基本的代理规则。

<VirtualHost *:443>
        ServerName MY_APPACHE_SERVER_NAME
        SSLEngine on
        SSLProxyEngine on
        SSLCertificateFile /etc/ssl/certs/...
        SSLCertificateKeyFile /etc/ssl/private/...
        SSLCertificateChainFile /etc/ssl/certs/...
        SSLProxyCheckPeerCN on
        SSLProxyCheckPeerExpire on

        ProxyPreserveHost On
        ProxyPass / https://MY_IIS_SERVER_NAME/
        ProxyPassReverse / https://MY_IIS_SERVER_NAME/
</VirtualHost>

如果我通过代理访问主页,则会收到 404 错误。

在 IIS 服务器端,在 C:\Windows\System32\LogFiles\HTTPERR\httperr.log 文件中,我可以看到传入呼叫和响应设置为 404

2015-03-27 15:07:36 184.73.82.33 42313 10.79.154.81 443 HTTP/1.1 GET / 404 - NotFound -
2015-03-27 15:07:52 184.73.82.33 42314 10.79.154.81 443 HTTP/1.1 GET / 404 - NotFound -

在 http 响应中,我可以看到响应来自 IIS 服务器服务器:Microsoft-HTTPAPI/2.0

        HTTP/1.1 404 Not Found
        Date: Fri, 27 Mar 2015 15:07:52 GMT
        Server: Microsoft-HTTPAPI/2.0
        Content-Type: text/html; charset=us-ascii
        Content-Length: 315
        Keep-Alive: timeout=5, max=100
        Connection: Keep-Alive

我不明白为什么我在访问代理服务器时无法访问我的主页。任何帮助将不胜感激。

谢谢。

【问题讨论】:

  • 我很想知道您是否有更多关于反向代理和 Apache 到 IIS 的问题。我们正在考虑将我们的反向代理职责转移到 Windows VM 和 IIS,因为我们遇到了一些奇怪的网关错误等。
  • 自从将代理切换到 apache 后,我没有遇到任何问题,一切仍然正常。

标签: apache iis proxy http-status-code-404 reverse-proxy


【解决方案1】:

发现我的问题,是“ProxyPreserveHost On”行。它应该设置为 OFF。

IIS 服务器只响应 MY_IIS_SERVER_NAME。由于我调用的是 MY_APPACHE_SERVER_NAME,因此该名称被转发到 IIS 服务器,而服务器无法识别该名称。因此出现 404 错误。

我最终的 apache 配置如下所示:

<VirtualHost *:443>
    ServerName MY_APPACHE_SERVER_NAME
    SSLEngine on
    SSLProxyEngine on
    SSLCertificateFile /etc/ssl/certs/...
    SSLCertificateKeyFile /etc/ssl/private/...
    SSLCertificateChainFile /etc/ssl/certs/...

    ProxyPreserveHost Off
    ProxyRequests Off
    ProxyPass / https://MY_IIS_SERVER_NAME/
    ProxyPassReverse / https://MY_IIS_SERVER_NAME/
</VirtualHost>

【讨论】:

    猜你喜欢
    • 2017-04-06
    • 1970-01-01
    • 1970-01-01
    • 2014-09-07
    • 2015-01-12
    • 2020-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多