今天太倒楣了,發現透過IP無法存取伺服器的80埠很無語,昨天都還好的啊,也沒有修改過配置,其他連接埠又是正常的,防火牆也沒問題。於是問了下機房,給了個崩潰的回覆說我們的伺服器有個網域沒有備案被電信多次通告,然後就把我們ip埠給封了。 。 。 。封了啊。 。 。瘋了,關鍵是這個網域TMD不是我的啊
經過一番折騰,發現是nginx 配置上貌似有個漏洞,導致任何網域解析到伺服器都能被正常請求,雖然是個空白頁,但HTTP狀態碼是200。
主要是缺少下面的配置代碼:nginx 版本1.8.0
<code><span>server</span> { listen <span>80</span> default_server; server_name _; <span>return</span><span>403</span>; }</code>
讓所有沒有配置過的server_name 都回傳403 錯誤
我以前Nginx 也重未加過這個配置,但重來沒遇到過此類別問題,而且我在另一台伺服器上測試,即便沒有這個程式碼也不可能解析並請求成功啊,很是無語。
補充:
搜尋了一圈後發現Nginx 對這類問題,貌似應該用自身特有的444 這個狀態碼最好
<code><span>server</span> { listen <span>80</span> default_server; server_name _; access_log off; <span>return</span><span>444</span>; }</code>
這樣在瀏覽器端訪問的時候,瀏覽器會自動提示用戶無法訪問
透過CURL 抓取的結果(輸出的是HTTP錯誤訊息)
').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadeIn(1700); }); });以上就介紹了Nginx 防止被網域惡意解析的方法,包括了方面的內容,希望對PHP教學有興趣的朋友有幫助。