Ben*_*tte 2 apache iis proxy reverse-proxy http-status-code-404
我正在尝试设置从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>
Run Code Online (Sandbox Code Playgroud)
如果我通过代理访问主页,则会收到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 -
Run Code Online (Sandbox Code Playgroud)
在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
Run Code Online (Sandbox Code Playgroud)
我不明白为什么在访问代理服务器时无法获得主页。任何帮助,将不胜感激。
谢谢。
发现我的问题,那是“ 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>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6512 次 |
| 最近记录: |