詳解nginx同一端口監(jiān)聽多個(gè)域名和同時(shí)監(jiān)聽http與https
1、同一端口監(jiān)聽多個(gè)域名
如今公網(wǎng)ip資源越來越珍貴,多域名監(jiān)聽?wèi)?yīng)用非常廣泛,就是用一個(gè)端口,比如80或者443,監(jiān)聽多個(gè)入口域名。如下:
server { listen 443 ssl; server_name xxx.xxx.cn; ssl_certificate ssl/server.pem; ssl_certificate_key ssl/server.key; ...... }
在啟用新的域名的時(shí)候,只需要另啟一個(gè)server配置文件,丟在vhosts目錄下即可,不會(huì)報(bào)端口被占,這個(gè)維護(hù)nginx的大部分人都知道。但是,這里有個(gè)地方要注意:不能跨nginx實(shí)例。很多同事習(xí)慣在同一虛機(jī)或者云主機(jī)下安裝多個(gè)nginx實(shí)例,如果你在實(shí)例1里面用了某個(gè)端口,再在實(shí)例2里面用這個(gè)端口綁不同域名,那對(duì)不起了,報(bào)錯(cuò)妥妥的出來:
nginx: [emerg] bind() to 0.0.0.0:xxxx failed (98: Address already in use)nginx: [emerg] still could not bind()
個(gè)人建議:不在同一臺(tái)虛機(jī)或者云主機(jī)下安裝多個(gè)nginx實(shí)例,
2、http和https同時(shí)監(jiān)聽
這種需求還是挺多的,有時(shí)候我們的證書需要安裝在A10或者F5這類硬負(fù)載均衡上,此時(shí),DMZ區(qū)的服務(wù)器不需要安裝證書,只需要監(jiān)聽http端口即可。但與此同時(shí),內(nèi)網(wǎng)dns直接將A地址指到了服務(wù)器,此時(shí)又需要在服務(wù)器上安裝證書。這種場(chǎng)景,就需要服務(wù)器同時(shí)對(duì)http和https端口進(jìn)行監(jiān)聽,監(jiān)聽https口是為了解析內(nèi)網(wǎng)https域名,監(jiān)聽http口是為了反向代理從DMZ區(qū)過來的http請(qǐng)求。如此,可實(shí)現(xiàn)內(nèi)外網(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; ...... }
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
新聞熱點(diǎn)
疑難解答
圖片精選