使用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;}}