nginx强制使用https访问(http跳转到https)
2018-09-11 本文已影响0人
猪蹄胖
方法一、nginx的rewrite方法
将所有http请求通过rewrite重写到https上
sever{
listen 192.168.1.1:80;
server_name browser.com.cn;
rewrite ^(.*)$ https://$host$uri permanentl;
}
方法二、nginx的error_page 497
#当虚拟站点只允许https访问时,用http访问nginx会报出497错误码
497 - normal request was sent to HTTPS
利用error_page命令将497状态码的链接重定向到https://$host/location
#nginx
server{
listen 192.168.1.1:443;
listen 192.168.1.100:80;
server_name browser.com
ssl on;
ssl_certificate /usr/local/nginx/browser.pem;
ssl_certificate_key /usr/local/nginx/browser.key;
#让http请求重定向到https请求
error_page 497 https://$host$uri?$args;
}
方法三、index.html+error_page 跳转
巧妙利用meta刷新作用,将访问browser.com
跳转到www.browser.com
,然后根据error_page
重定向到https
<html>
<meta http-equiv="refresh" content="0;https://browser.com">
<html>
#nginx
server {
listen 192.168.1.1:80;
server_name browser.com;
location / {
#index.html 放入主机监听目录下
root /usr/local/nginx/browser/;
}
#将404页面重新定向到https首页
error_page 404 https://browser.com;
}