数字海洋负载均衡器 http 到 https 使用 301 而不是 307



在我的设置中,我有一个DigitalOcean负载均衡器,目前只有一个运行nginx的droplet连接。我通过 SSL 终止使用负载均衡器管理我的 SSL 证书。负载均衡器设置了以下转发规则:

端口 80 上的 HTTP -端口 80 上的 HTTP>

HTTP 端口443 上的 HTTP2 -端口 80 上的>HTTP

负载均衡器可以选择将HTTP 重定向到 HTTPS。但是如果我使用此选项,它会使用 307 重定向而不是 301。根据DigitalOcean的说法,这是有意的。出于 SEO 的原因,我被告知它应该使用 301。我试图禁用该选项并使用nginx配置重定向,但我最终陷入了无限循环。这是我使用的剪图:

server {
listen 80;
server_name _;
# $scheme will get the http protocol
# and 301 is best practice for tablet, phone, desktop and seo
return 301 https://$host$request_uri;
}

有谁知道如何正确处理这种情况?任何帮助将不胜感激。

干杯 拉夫

我实际上想通了,我可以通过添加来防止循环

if ($http_x_forwarded_proto = "http") {
return 301 https://$host$request_uri;
}

如本文所建议的

最新更新