在Nginx服务器上强制SSL时重定向循环
发布时间:2020-12-13 21:12:26 所属栏目:Nginx 来源:网络整理
导读:最近我一直在尝试使用Nginx重定向到HTTPS,但是在我尝试在浏览器中访问我的网站后,我一直在获得重定向循环.这是我的完整服务器块配置文件: server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; listen 443 ssl; root /var/www;
最近我一直在尝试使用Nginx重定向到HTTPS,但是在我尝试在浏览器中访问我的网站后,我一直在获得重定向循环.这是我的完整服务器块配置文件:
搜索后我发现返回301 https:// $host $request_uri;这将是最简单的方法. 所以我将它实现到我的配置文件中,然后运行sudo service nginx restart.然后我去了我的浏览器,我得到了一个重定向循环.一旦我删除了那一行代码,它就消失了.所以我认为我真正想要的是一种更有效的重定向到SSL的方法. 任何帮助,将不胜感激.谢谢 最佳答案
就目前而言,您将所有流量重定向到https,这对于http流量很有用,但对于https流量来说却毫无意义,并导致重定向循环.现在发生的事情如下:http – > https – > https – > https – > https – > https …等等,直到你的浏览器告诉你,“这就够了,我们不会成功”.
您希望实现的是将http流量重定向到https,并处理https流量(就像之前使用http流量一样). 因此,您需要将配置拆分为两个服务器指令:一个用于http(应该执行重定向),另一个用于https,它将处理流量. 看看这个例子:
将此服务器块添加到您的配置中,删除现有服务器块中的相应行,并获利! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |