App Engine在自定义环境中从HTTP重定向到HTTPS

时间:2017-09-08 13:25:42

标签: google-app-engine nginx google-cloud-platform

我们正在通过nginx服务器分享静态内容的独立App Engine服务。这样的方案需要启用反应路由,因此我们在业务逻辑路由上返回index.html。 Nginx位于docker容器内并侦听端口8080,这是App Engine example app中所需和使用的。

我已经检查了运行容器的实例,实际上我的容器正在使用两个端口:80和8080.

默认情况下,所有请求都转到静态内容。 我相信这一切都与nginx配置有关,所以,问题就在这里。

  1. 他们实际使用的是80 - > 80和8080 - > 443?在这种情况下,我只需创建单独的标准服务器,侦听端口80并重定向到https版本。
  2. 如果端口80实际上没有使用,那么它是否意味着所有流量,http和https都来自单个8080端口?
  3. 解决方法是通过if语句和regexp匹配url请求中的http工作吗?这会是一个多么可怕的解决方案?

1 个答案:

答案 0 :(得分:3)

HTTP和HTTPS流量都通过端口8080到达App Engine Flexible运行时。X-Forwarded-Proto HTTP标头将包含httphttps,您应该使用它来确定哪个协议客户正在使用。

您甚至可以直接在nginx配置中执行此操作,如this answer

所示