【发布时间】:2013-10-03 03:53:26
【问题描述】:
我一直遇到 Apache 的 mod_proxy 无法转发任何流量的问题。我正在使用运行 Ubuntu 13.04 的 Windows Azure 虚拟机,并为其配置了正确的 HTTPS 端点(端口 443)。正确的 Apache 模块(代理、ssl 等)都已安装,并且错误日志没有显示任何内容,甚至没有警告解释为什么会发生这种情况。我的 VirtualHost 设置如下:
<VirtualHost *:443>
RequestHeader set X-Forwarded-Proto "https"
ProxyPreserveHost On
ServerName www.example.com
SSLEngine On
#SSLProxyEngine On
SSLCertificateFile /ssl/my.com.crt
SSLCertificateKeyFile /ssl/my.key
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
<Location />
SSLRequireSSL
Order deny,allow
Allow from all
</Location>
ProxyPass / http://127.0.0.1:8080/
ProxyPassReverse / http://127.0.0.1:8080/
</VirtualHost>
我也设置了Listen 443 和NameVirtualHost *:443。我在另一个端口上的服务运行良好,因为 wget 以 HTTP 200 OK 响应响应,我可以通过手动输入端口号来访问它。我也禁用了所有防火墙(用于测试)也无济于事。但是,每当我尝试通过 mod_proxy(端口 443)从外部访问服务时,请求就会超时,并且我会收到通常的“网站不可用”浏览器错误。
如果这意味着什么,我在需要将 HTTPS 流量转发到的另一个端口上运行的应用程序是 Play Framework 2.1 应用程序。我完全按照他们的文档设置服务器,但仍然存在这些问题,所以我假设它可能与 Azure 有关。
有什么想法吗?是否需要针对 Windows Azure 虚拟机进行一些其他类型的端点配置以支持 SSL/TLS?
【问题讨论】:
-
从 VirtualHost 示例中可以看出,我已经尝试了来自互联网各地的十几种不同的建议 - 它们都没有奏效,所以我希望这里有人可能以前遇到过这个问题。
-
此外,此问题不仅限于 HTTPS - HTTP(端口 80)流量也不起作用。
标签: apache azure ssl apache2 playframework-2.1