在我的本地apache2服务器中,http侦听端口80,https侦听端口443
但是在appfog上,
http和https都正在侦听端口80,因为我正在进入
"The webpage has a redirect loop" on google chrome.
任何帮助?
答案 0 :(得分:2)
AppFog将所有的Apache服务器放在nginx上运行的负载均衡器之后。在内部,它们都使用端口80上的默认HTTP进行通信,因为可以讨论使用该层中的SSL加密所有通信的增益。他们可能仍以某种方式使用SSL,但这对我们来说并不重要。您无法查看客户端是否使用SSL,因为它们连接到负载均衡器而不是Apache服务器。幸运的是,nginx为我们发送了一些额外的标题。准确地说X-Forwarded-Port
和X-Forwarded-Proto
。我们可以利用这个优势,检查一个或多个字段并相应地重定向。
RewriteCond %{HTTP:X-Forwarded-Proto} !^https$ [NC]
RewriteRule ^(.*) https://yourdomain.com/$1 [R,L]
这至少解决了我的问题。您可能希望对X-Forwarded-Port
执行某些操作,但这应涵盖大多数情况。