大佬教程收集整理的这篇文章主要介绍了在Nginx服务器上强制SSL时重定向循环,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
最近我一直在尝试使用Nginx重定向到httpS,但是在我尝试在浏览器中访问我的网站后,我一直在获得重定向循环.这是我的完整服务器块配置文件:
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
listen 443 ssl;
root /var/www;
index index.php index.html index.htm home.html contact.html projects.html;
# Make site accessible from http://localhost/
server_name melone.co;
return 301 https://$host$request_uri;
ssl_certificate /path/to/ssl;
ssl_certificate_key /path/to/ssl;
LOCATIOn / {
# First attempt to serve request as file,then
# as directory,then fall BACk to displaying a 404.
try_files $uri $uri/ =404;
proxy_set_header X-ForWARDed-Proto $scheR_53_11845@e;
}
error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
error_page 500 502 503 504 /50x.html;
LOCATIOn = /50x.html {
root /var/www;
}
LOCATIOn ~ \.php${
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
}
搜索后我发现返回301 https:// $host $request_uri;这将是最简单的方法.
所以我将它实现到我的配置文件中,然后运行sudo service Nginx restart.然后我去了我的浏览器,我得到了一个重定向循环.一旦我删除了那一行代码,它就消失了.所以我认为我真正想要的是一种更有效的重定向到SSL的方法.
任何帮助,将不胜感激.谢谢
您希望实现的是将http流量重定向到https,并处理https流量(就像之前使用http流量一样).
因此,您需要将配置拆分为两个服务器指令:一个用于http(应该执行重定向),另一个用于https,它将处理流量.
看看这个例子:
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
server_name melone.co;
return 301 https://$host$request_uri;
}
将此服务器块添加到您的配置中,删除现有服务器块中的相应行,并获利!
以上是大佬教程为你收集整理的在Nginx服务器上强制SSL时重定向循环全部内容,希望文章能够帮你解决在Nginx服务器上强制SSL时重定向循环所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。