我们正在向Google App Engine Flex Environment推出PHP应用程序。
我们已配置自定义域。期望的行为是对http://custom.example.com的任何请求都将转发 https://custom.example.com
目前,如果您转到appspot网址,例如, http://project-name.appspot.com,该请求正确转发 https://project-name.appspot.com
但是,如果您转到自定义域,则不会转发到https。应用程序正常运行,但它允许http连接。
描述可用配置文件的Google App Engine文档:
https://cloud.google.com/appengine/docs/flexible/php/configuring-your-app-with-app-yaml
其中说明:
nginx-app.conf文件的内容将包含在主nginx配置文件的服务器部分中。
所以,我正在尝试创建一个强制https的nginx配置。我在nginx-app.conf文件中尝试了这个:
listen 80;
server_name custom.example.com;
return 301 https://$server_name$request_uri;
但是,使用此配置,在浏览器中,我得到:
此页面无效
custom.example.com重定向了你太多次了。
ERR_TOO_MANY_REDIRECTS
我认为我需要一个不同的nginx配置,但却找不到可行的解决方案。
答案 0 :(得分:0)
将这些行添加到nginx-app.conf文件解决了这个问题。
set $test "";
if ($http_x_forwarded_proto = 'http') {
set $test "http";
}
if ($test = 'http') {
return 301 https://$host$request_uri;
}