https和http,都在appfog上监听端口80

时间:2013-04-19 08:43:56

标签: php redirect https apache2 port

在我的本地apache2服务器中,http侦听端口80,https侦听端口443

但是在appfog上,

http和https都正在侦听端口80,因为我正在进入

"The webpage has a redirect loop" on google chrome.

任何帮助?

1 个答案:

答案 0 :(得分:2)

AppFog将所有的Apache服务器放在nginx上运行的负载均衡器之后。在内部,它们都使用端口80上的默认HTTP进行通信,因为可以讨论使用该层中的SSL加密所有通信的增益。他们可能仍以某种方式使用SSL,但这对我们来说并不重要。您无法查看客户端是否使用SSL,因为它们连接到负载均衡器而不是Apache服务器。幸运的是,nginx为我们发送了一些额外的标题。准确地说X-Forwarded-PortX-Forwarded-Proto。我们可以利用这个优势,检查一个或多个字段并相应地重定向。

RewriteCond %{HTTP:X-Forwarded-Proto} !^https$ [NC]
RewriteRule ^(.*) https://yourdomain.com/$1 [R,L]

这至少解决了我的问题。您可能希望对X-Forwarded-Port执行某些操作,但这应涵盖大多数情况。