HTTPS和http,都监听appfog上的80端口


https and http, both listening to port 80 on appfog

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

但是在appfog上,

http和HTTPS都在监听端口80,因为我遇到了

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

帮忙吗?

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做些什么,但这应该涵盖大多数情况。