【发布时间】:2017-04-18 09:25:51
【问题描述】:
我正在使用 L7 HTTP 负载均衡器。我想从 HTTP 请求重定向到 HTTPS。这是我的 nginx 配置的一部分。当我在没有负载均衡器的情况下访问我的 Web 服务器时,它可以工作。但它不适用于负载均衡器。返回404错误。
我该如何解决?
我正在使用 nginx
server {
listen 80;
server_name example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
...
}
HTTP 响应
HTTP/1.1 404 Not Found
Server: Google Frontend
我在下面发现了这个问题,并添加了 $http_x_forwarded_proto 检查。但结果并没有改变。
问题 255:使用 HTTP(S) 负载平衡器时将所有 HTTP 流量重定向到 HTTPS https://code.google.com/p/google-compute-engine/issues/detail?id=255&thanks=255&ts=1446612833
server {
listen 80;
server_name example.com;
if ($http_x_forwarded_proto = "http") {
return 301 https://$host$request_uri;
}
}
server {
listen 443 ssl;
...
}
更新 1
我发现我的负载均衡器只有 HTTPS 协议端点配置。我想我需要 HTTP 端口端点设置。
下面的这篇文章会有所帮助。
【问题讨论】:
-
你曾经解决过这个问题吗?如果是这样,请考虑发布一个自我回答,以便社区受益。
标签: nginx load-balancing google-cloud-platform google-compute-engine