今天太倒霉了,發現通過IP無法訪問服務器的80端口很無語,昨天都還好的啊,也沒有修改過配置,其他端口又是正常的,防火牆也沒問題。於是問了下機房,給了個崩潰的回復說我們的服務器有個域名沒有備案被電信多次通告,然後就把我們ip端口給封了。。。。封了啊。。。瘋了,關鍵是這個域名TMD不是我的啊
經過一番折騰,發現是 nginx 配置上貌似有個漏洞,導致任何域名解析到服務器都能被正常請求,雖然是個空白頁,但HTTP狀態碼是200。
主要是缺少下面的配置代碼:nginx 版本 1.8.0
server {
listen 80 default_server;
server_name _;
return 403;
}
讓所有沒有配置過的 server_name 都返回 403 錯誤
我以前 Nginx 也重未加過這個配置,但重來沒遇到過此類問題,而且我在另一台服務器上測試,即便沒有這個代碼也不可能解析並請求成功啊,很是無語。
補充:
搜索了一圈後發現 Nginx 對這類問題,貌似應該用自身特有的 444 這個狀態碼最好
server {
listen 80 default_server;
server_name _;
access_log off;
return 444;
}
這樣在浏覽器端訪問的時候,浏覽器會自動提示用戶無法訪問
<喎?http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4NCjxwPjxjb2RlIGNsYXNzPQ=="hljs axapta">通過 CURL 抓取的結果(輸出的是HTTP錯誤信息)