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