為了讓 nginx 監(jiān)聽(tīng)域名而不監(jiān)聽(tīng)端口,需要在配置文件中進(jìn)行配置:1. 配置虛擬主機(jī),指定要監(jiān)聽(tīng)的域名;2. 刪除默認(rèn)監(jiān)聽(tīng)端口;3. 配置 dns 解析;4. 重啟 nginx。這樣,nginx 將僅監(jiān)聽(tīng)域名,提高安全性并啟用 sni。
NGINX 監(jiān)聽(tīng)域名,不監(jiān)聽(tīng)端口
要讓 NGINX 監(jiān)聽(tīng)域名而不監(jiān)聽(tīng)端口,需要在配置文件中進(jìn)行以下配置:
1. 配置虛擬主機(jī)
server { server_name www.example.com; }
2. 刪除默認(rèn)偵聽(tīng)端口(80 和 443)
listen 80; listen 443 ssl http2;
3. 配置 DNS 解析
為域名配置 DNS 記錄,將其解析到服務(wù)器的 IP 地址。
4. 重啟 NGINX
更改生效后,需要重啟 NGINX:
sudo systemctl restart nginx
工作原理
通過(guò)上述配置,NGINX 僅會(huì)監(jiān)聽(tīng)域名,而不會(huì)監(jiān)聽(tīng)端口。當(dāng)客戶端通過(guò)域名訪問(wèn)服務(wù)器時(shí),NGINX 會(huì)根據(jù)虛擬主機(jī)配置處理請(qǐng)求,而不使用端口。這意味著外部無(wú)法直接通過(guò)端口訪問(wèn)服務(wù)器。
優(yōu)點(diǎn)
- 提高安全性:僅監(jiān)聽(tīng)域名可以防止攻擊者通過(guò)端口掃描找到服務(wù)器。
- 啟用 SNI:當(dāng)與 https 一起使用時(shí),此配置允許 Nginx 在單個(gè) IP 地址上托管多個(gè) SSL 證書。