在这篇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;
}