Nginx配置域名同時支援 https 和 http 訪問

gary-liu發表於2017-02-16

在這篇CentOS雲主機中Nginx正向代理http、https文章中已經分別介紹了nginx代理 http 和 https 請求。

但有時業務需要同個域名支援 https 和 http 兩種方式訪問,可以如下配置檔案。

server
     {
         listen 80;
         listen      443 ssl;   //修改後
         server_name  liu.test.com;
         location /
            {
              expires      302400s;

              proxy_pass   http://xxxx/xxxx/;            
                 }
              #ssl on;    //修改後
              ssl_certificate /usr/local/nginx/conf/server.crt;
              ssl_certificate_key /usr/local/nginx/conf/server.key;
              access_log  /usr/local/nginx/xxxx.log   log_access;

      }

注意看標有//修改後的地方

如果你想強制使用https訪問,對埠進行判斷,然後rewrite即可。

if ($server_port != 443) {
    rewrite (.*) https://$host$1 permanent;
}

參考文獻

Nginx 同時支援http和https(ssl)共存的方法

相關文章