【发布时间】:2011-10-09 12:59:13
【问题描述】:
我有一台运行 Apache 的 Linux 主机和一台运行 IIS 的 Windows 主机。我有一个指向 Linux 主机的域,需要将它的请求中继(代理)到 IIS;因此,我在 Apache 中有以下虚拟主机定义(效果很好):
<VirtualHost 192.168.0.2:80>
ServerName www.acme.com
DocumentRoot /var/www/acme.com
RewriteEngine On
RewriteOptions Inherit
RewriteRule ^/(.*) http://win.acme.com/$1 [P]
</VirtualHost>
现在我想添加 SSL 支持;定义变为:
<VirtualHost 192.168.0.2:443>
ServerName www.acme.com
DocumentRoot /var/www/acme.com
GnuTLSEnable On
GnuTLSPriorities NORMAL:%COMPAT
GnuTLSCertificateFile /var/www/ssl/www.acme.com.crt
GnuTLSKeyFile /var/www/ssl/www.acme.com.key
RewriteEngine On
RewriteOptions Inherit
RewriteRule ^/(.*) https://win.acme.com/$1 [P]
</VirtualHost>
我在两个 Web 服务器上都有有效且受信任的证书,如果我访问 https://win.acme.com 一切都很好,但是,当我访问 https://www.acme.com 时,我会收到 500 Internal Server Error 消息。查看错误日志显示:
[2011 年 7 月 20 日星期三 08:35:34] [错误] [客户端 76.168.166.70] SSL 代理 请求 www.wileybits.com:80 但未启用 [提示: SSLProxyEngine] [2011 年 7 月 20 日星期三 08:35:34] [错误] 代理:HTTPS: 无法为 74.166.186.70:443 (win.acme.com) 启用 ssl 支持
请注意代理请求似乎是针对错误的域(wileybits)...它显示的域也由我的 Apache 服务器托管,但我不明白为什么它会出现在 acme.com 的日志中(也许是反向 DNS 查找?)
无论如何,我错过了什么?
提前致谢 - ekkis
附言主机名和地址已被更改以保护无辜者:)
* 更新 *
与:
RewriteRule ^/(.*) https://win.acme.com/$1 [R,L]
它似乎工作正常,但当然,Windows 的主机名变得可见,这在我的场景中是不可接受的
我也尝试过(而不是 mod_rewrite):
ProxyRequests Off
ProxyPass / https://win.acme.com/
但同样的错误
【问题讨论】:
-
为什么我会得到一个减分?
标签: mod-rewrite apache2 ssl-certificate virtualhost mod-proxy