阻止已刪除檔案的多個請求

阻止已刪除檔案的多個請求

我在 Nginx 上執行 Wordpress 的伺服器上託管了一個 JavaScript 檔案。我刪除了該文件,但仍有多個引薦來源的多個請求。這些引薦來源網址來自不同的 URL 和 IP 位址。

有很多請求,我想阻止它們,因為它似乎會影響我的伺服器的效能。

有什麼辦法可以阻止這些請求嗎?

答案1

我想當你明確配置 nginx 舊的 javascript 的位置不再有效時,你會獲得效能提升,因為 nginx 不再需要檢查檔案系統,並且當你發送 410 錯誤時,它也不需要發送 404 錯誤頁面:

location /path/to/script.js {
return 410 ; 
}

HTTP 狀態碼 410:消失

所請求的資源在伺服器上不再可用,且轉送位址未知。這種情況預計將被視為永久性的。具有連結編輯功能的用戶端應該在​​用戶批准後刪除對 Request-URI 的引用。如果伺服器不知道或無法確定該情況是否是永久性的,則應使用狀態代碼 404(未找到)。除非另有說明,否則該回應是可緩存的。

410 回應主要旨在透過通知接收者資源故意不可用以及伺服器擁有者希望刪除指向該資源的遠端連結來協助 Web 維護任務。對於限時促銷服務以及屬於不再在伺服器網站工作的個人的資源來說,此類事件很常見。沒有必要將所有永久不可用的資源標記為「消失」或將標記保留任何時間——這由伺服器所有者自行決定。

答案2

location = /deleted.js {
    default_type    text/plain;
    return      410 "410";
    #access_log off;
}

您可能想要像上面一樣停用訪問日誌,或者,如果您正在運行足夠新的 nginx,請配置access_log做緩衝。光碟存取通常非常昂貴,並且很可能會減慢您的速度。

順便說一句,使用return自動暗示log_not_found off;,所以,它已經比簡單地讓 vfs 產生 404 更好了。

答案3

這是一個使用 iptable 的 string 模組來檢查 http header 內容的想法,當然它必須適應您的特殊情況:http://spamcleaner.org/en/misc/w00tw00t.html

然而,我不太確定檢查所有傳入資料包和讓網頁伺服器處理它們之間哪個會更快。我最終只是在伺服器配置中添加一行,以立即在該特定 url 上返回 404;隨著時間的推移,流量會自行減少,因為網站管理員和搜尋引擎會更正他們的連結(他們會的,因為 404 錯誤會導致現代網路搜尋引擎中的不良定位)。

相關內容