> CentOS > CentOS服务器 > 环境配置 >

CentOS云主机中Nginx正向代理同时支持 https 和 http 访问

在这篇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)共存的方法



(责任编辑:IT)