nginx從http重定向到https

使用nginx把http重定向到https


背景:

1、沒有加S的網頁容易被嵌入廣告
2、沒有www的網頁,微信支付調用不起來,夠坑吧!

解決方案:

1、將http重定向到https
2、將 domain.com 跳轉到 www.domain.com

必備知識:

1、http 默認爲 80 端口
2、https 默認爲 443 端口

具體配置:

nginx的配置文件如下:

server {
        listen       80;
        server_name www.domain.com domain.com;
    return 301 https://www.domain.com$request_uri;
}

server {
        listen       443;
        root /www/web/domain//public_html;
        ssl                  on;
        ssl_certificate      cert/www.domain.com.pem;
        ssl_certificate_key  cert/www.domain.com.key;
        ssl_prefer_server_ciphers on;
        ssl_session_timeout 10m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
        server_name www.milago168.com;
        index  index.html index.php index.htm;
        error_page  400 /errpage/400.html;
        error_page  403 /errpage/403.html;
        error_page  404 /errpage/404.html;
        error_page  503 /errpage/503.html;
        location ~ \.php(.*)$ {
                fastcgi_pass  unix:/tmp/php-53-cgi.sock;
                fastcgi_index  index.php;
                fastcgi_param  SCRIPT_FILENAME  $DOCUMENT_ROOT$fastcgi_script_name;
                fastcgi_param PATH_INFO $2;
                include fcgi.conf;
        }
        location ~ /\.ht {
                deny  all;
        }
        location / {
                 try_files $uri $uri/ /?$args;
        }
}

server {
           listen      443;
           server_name domain.com;
           return 301 https://www.domain.com$request_uri;
 }

提示:

1、留意第二個server與第三個server的位置問題,如果他們調換就無法訪問到項目,可能是 domain.com 可以把 wwww.domain.com 匹配到的原因吧
2、留意return後面的內容,是requesturi request_url
3、設置好配置,重啓服務器看日誌,一定要學會看redme與log
4、其中www.domain.com.pem、www.domain.com.key是證書與祕鑰
5、升級爲https後,如果地址欄沒有小綠鎖,只需要把網頁中所有http換成https即可

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章