使用nginx最初的目的是为了解决iis7下无法配置多个443端口的问题,iis7下不同的域名无法同时绑定443端口,据说iis8是可以的,但是iis8的话需要安装windows server2012,成本太高,不考虑。
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强。下载地址:http://nginx.org/en/download.html,我下载的是1.12.2这个版本。
nginx常用命令:
start nginx nginx -s quit nginx -s reload
找到nginx配置文件(nginx-1.12.2\conf\nginx.conf),修改如下(没有说明的配置项可以自己查阅官方文档):
server { listen 443 ssl; server_name adomain.net www.adomain.net; resolver 127.0.0.1 valid=3600s; ssl_certificate cert/1568989_www.adomain.net.pem; ssl_certificate_key cert/1568989_www.adomain.net.key; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; location / { proxy_pass http://www.adomain.net:8088; index Home/Index; } } server { listen 443 ssl; server_name bdomain.cn www.bdomain.cn; resolver 127.0.0.1 valid=3600s; ssl_certificate cert/1586142_www.bdomain.cn.pem; ssl_certificate_key cert/1586142_www.bdomain.cn.key; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; location / { proxy_pass http://www.bdomain.cn:8088; index Home/Index; } }
server_name配置成bdomain.cn www.bdomain.cn的目的是为了用户在浏览器中输入bdomain.cn和www.bdomain.cn都能访问,中间空格隔开
1586142_www.bdomain.cn.pem和1586142_www.bdomain.cn.key分别对应域名www.bdomain.cn的证书和密码,我这里是在nginx-1.12.2\conf目录下建了一个cert目录用来存放证书文件
proxy_pass 表示指向的地址,比如http://www.bdomain.cn:8088,表示用户通过https://www.bdomain.cn访问时,指向的是iis绑定的8088端口http://www.bdomain.cn:8088
iis对应网站绑定如下:
如果希望用户通过http访问时自动跳转到https,可以增加以下配置:
server { listen 80; server_name bdomain.net www.bdomain.net; return 301 https://www.bdomain.net$request_uri; }
不跳转到https,但是接管80端口的配置:
server { listen 80; server_name adomain.cn www.adomain.cn; location / { proxy_pass http://www.adomain.cn:8088; index Home/Index; } }