我一直遇到 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?