NGINX主機(jī)一個站點(diǎn)開啟SSL證書后其他站點(diǎn)域名訪問錯亂怎么解決?
日期 2024-05-13 / 人氣 646 / 欄目: 新聞動態(tài) 常見問題
NGINX主機(jī)一個站點(diǎn)開啟SSL證書后其他站點(diǎn)域名訪問錯亂怎么解決?在我們阿里云服務(wù)器NGINX主機(jī)上,如果你在一個Nginx服務(wù)下配置多個vhost域名站點(diǎn),為其中一個站點(diǎn)的域名啟用 HTTPS 訪問協(xié)議之后,發(fā)現(xiàn)百度統(tǒng)計(jì)的實(shí)時(shí)訪客或入口頁中,存在一些來自其它域名的請求。即通過
https://some-other-domain.com/some-url 來訪問對應(yīng)的 https://www.domain.com/some-url
結(jié)果就是 Google 瀏覽器顯示了一個安全警告頁面,認(rèn)為這是一個不安全的網(wǎng)頁??墒俏覀冎慌渲昧?www.domain.com 的 SSL 證書,其他域名并沒有配置啊。
最嚴(yán)重的問題是,搜素引擎的爬蟲就不能正常訪問正確的域名了。
接下來萬維景盛小編為您介紹如何解決這一問題,
首先,我們來理一下概念: 1)理解空主機(jī)頭,正是空主機(jī)頭沒有得當(dāng)配置而導(dǎo)致的; 2)網(wǎng)站訪問的順序:域名=>IP=>端口=>服務(wù);
nginx既是一個高性能高并發(fā)的Web服務(wù)器,同時(shí)也是做反向代理的優(yōu)選工具, 當(dāng)我們部署該工具時(shí),默認(rèn)配置(nginx.conf)中的server塊,在不指定server_name的情況下,可以匹配任意指向該服務(wù)器的域名,即,只要你將域名做A記錄指向該服務(wù)器的IP或Cname,便可“克隆”該服務(wù)器上的defalut_server。
我們知道nginx中的vhost是依賴server_name來路由的,但,端口也可起到相同的作用。
因此,當(dāng)我們?yōu)関host配置了https后,非該vhost綁定的server_name(假設(shè)為: some-other-domain.com),通過https協(xié)議進(jìn)行被訪問時(shí),由于空主機(jī)頭并未能設(shè)置,因此,也就無法攔截,這時(shí)some-other-domain.com被看作為IP使用,請求將轉(zhuǎn)發(fā)到 當(dāng)前服務(wù)器IP:443,監(jiān)聽443的default_server(www.domain.com) 自然就返回了內(nèi)容。
搞清概念上的問題就好辦了,配置空主機(jī)頭即可,讓沒有明確綁定server_name的域名,一律攔截。
具體配置如下:打開 /usr/local/nginx/conf/nginx.conf 配置文件,修改或添加默認(rèn)vhost
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | server { listen 80 default_server; listen 443 ssl http2; servername ; server_name_in_redirect off; ssl_certificate /path/ssl_cert/ssl .pem; ssl_certificate_key /path/ssl_cert/ssl .key; error_page 401 402 403 404 /40x .html; location = /40x .html { root html; } location / { return 404; } } |
通過以上配置完成以后,即便你的阿里云服務(wù)器上有再多的站點(diǎn)域名,https啟用后也不會出現(xiàn)訪問錯亂的情況了。
轉(zhuǎn)載整理本文請注明出處【通聯(lián)臺州網(wǎng)站建設(shè)中心】
標(biāo)簽:NGINX NGINX主機(jī) SSL證書 訪問協(xié)議