在部署網站或 Web 應用時,我們通常會通過域名來訪問服務。然而,有時用戶可能會嘗試直接使用服務器的 IP 地址來訪問,這不僅可能繞過我們的域名特定配置(如 SSL 證書、重定向規則等),還可能導致不必要的安全風險或管理混亂。本文將介紹如何配置 Nginx,使其在通過 IP 地址訪問時,不返回任何響應,模擬“無法連接”的狀態,從而強制用戶必須通過指定的域名進行訪問。
為什么需要阻止 IP 直接訪問?
- SSL 證書的有效性:SSL 證書是與域名綁定的,通過 IP 地址訪問時,瀏覽器無法驗證證書的有效性,會顯示安全警告。
- 內容保護:防止他人直接通過 IP 訪問您的內容,例如抓取圖片、文件等。
- 多站點管理:當一臺服務器托管多個網站時,IP 訪問容易混淆,甚至可能錯誤地指向了其他網站。
- 避免信息泄露:過早地向未授權用戶暴露服務器的 IP 地址,可能增加攻擊面。
問題場景
當用戶在瀏覽器地址欄輸入 http://your_server_ip
或 https://your_server_ip
時,我們不希望 Nginx 響應任何內容(如 404、403 錯誤頁面),而是希望瀏覽器直接顯示“無法連接”或“連接被拒絕”的提示。