nginx同端口http跳转https
最终方案:
server {
listen 555;
server_name aaa.bbb.com;
#...ssl相关配置
error_page 497 https://$host:$server_port$request_uri;
}
思路:
1、判断当前请求协议是否是http,否则重定向到http【不可行】
if ($scheme = http ) {
return 301 https://$host$request_uri;
}
当时用http协议访问站点时,服务器会报400
而if条件是在400之后才进行处理的
2、利用error_page 进行重定向【可行】
使用http协议访问https网站时nginx会给出一个400状态码,但是并不能将所有的400重定向到https