詳解nginx同一端口監(jiān)聽多個域名和同時監(jiān)聽http與https
詳解nginx同一端口監(jiān)聽多個域名和同時監(jiān)聽http與https
1、同一端口監(jiān)聽多個域名
如今公網(wǎng)ip資源越來越珍貴,多域名監(jiān)聽應用非常廣泛,就是用一個端口,比如80或者443,監(jiān)聽多個入口域名。如下:
server {
listen 443 ssl;
server_name xxx.xxx.cn;
ssl_certificate ssl/server.pem;
ssl_certificate_key ssl/server.key;
......
}
在啟用新的域名的時候,只需要另啟一個server配置文件,丟在vhosts目錄下即可,不會報端口被占,這個維護nginx的大部分人都知道。但是,這里有個地方要注意:不能跨nginx實例。很多同事習慣在同一虛機或者云主機下安裝多個nginx實例,如果你在實例1里面用了某個端口,再在實例2里面用這個端口綁不同域名,那對不起了,報錯妥妥的出來:
nginx: [emerg] bind() to 0.0.0.0:xxxx failed (98: Address already in use) nginx: [emerg] still could not bind()
個人建議:不在同一臺虛機或者云主機下安裝多個nginx實例,
2、http和https同時監(jiān)聽
這種需求還是挺多的,有時候我們的證書需要安裝在A10或者F5這類硬負載均衡上,此時,DMZ區(qū)的服務器不需要安裝證書,只需要監(jiān)聽http端口即可。但與此同時,內網(wǎng)dns直接將A地址指到了服務器,此時又需要在服務器上安裝證書。這種場景,就需要服務器同時對http和https端口進行監(jiān)聽,監(jiān)聽https口是為了解析內網(wǎng)https域名,監(jiān)聽http口是為了反向代理從DMZ區(qū)過來的http請求。如此,可實現(xiàn)內外網(wǎng)https域名統(tǒng)一。
配置如下:
server {
listen 8080;
listen 443 ssl;
server_name xxx.xxx.cn;;
ssl_certificate ssl/server.pem;
ssl_certificate_key ssl/server.key;
......
}
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關文章
nginx 1.0.0配ngx_cache_purge實現(xiàn)高效的反向代理
nginx默認安裝就會帶有反向代理的功能,但想要更好的使用,還得配備frickle.com的ngx_cache_purge模塊,用于清除指定URL的緩存。2011-06-06

