標籤:nginx
1、同一連接埠監聽多個網域名稱
如今公網ip資源越來越珍貴,多網域名稱監聽應用非常廣泛,就是用一個連接埠,比如80或者443,監聽多個入口網域名稱。如下:
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同時監聽
這種需求還是挺多的,有時候我們的認證需要安裝在A10或者F5這類硬負載平衡上,此時,DMZ區的伺服器不需要安裝認證,只需要監聽http連接埠即可。但與此同時,內網dns直接將A地址指到了伺服器,此時又需要在伺服器上安裝認證。這種情境,就需要伺服器同時對http和https連接埠進行監聽,監聽https口是為瞭解析內網https網域名稱,監聽http口是為了反向 Proxy從DMZ區過來的http請求。如此,可實現內外網https網域名稱統一。
配置如下:
server {
listen 8080;
listen 443 ssl;
server_name xxx.xxx.cn;;
ssl_certificate ssl/server.pem;
ssl_certificate_key ssl/server.key;
......
}
本文出自 “記憶片段” 部落格,請務必保留此出處http://weikle.blog.51cto.com/3324327/1907852
nginx同一連接埠監聽多個網域名稱和同時監聽http,https