Security

如何配置 Apache 以拒絕帶有錯誤程式碼的代理請求?

  • July 15, 2010

我有一台執行 Apache 的伺服器,它經常收到不需要的代理請求,主要用於類似www.yandex.ruwww.baidu.com. 我沒有mod_proxy載入,所以這些請求實際上不起作用。但是發生的情況是返回的內容對應於我網站的首頁,大概是因為那是預設的虛擬主機。問題是,我寧願不將完整的索引頁面發回給顯然對我的網站不感興趣的人;我認為這是對頻寬和資源的浪費。我寧願用 HTTP 錯誤程式碼(我想是 400)來響應,以表明我的伺服器不能作為代理工作,並且在我檢查訪問日誌時讓自己感覺更好;-)

配置 Apache 以返回代理請求的錯誤程式碼的推薦方法是什麼?(“代理請求”是指在 HTTP 請求行中提供絕對 URL 的請求。)哪個 HTTP 錯誤程式碼最適合此?

順便說一句,我以為這已經被問過了,但我看了看並沒有找到。

您可以簡單地配置一個拒絕所有請求的預設虛擬主機:

<VirtualHost *:80>
 ServerName deny.all
 <Location />
   Order allow,deny
   Deny from all
 </Location>
</VirtualHost>

有了這個,所有訪問未明確配置的虛擬主機的請求都將被拒絕,並顯示 HTTP 錯誤程式碼 403(“禁止”)。

另請務必查看有關代理濫用的 Apache wiki 頁面以獲取更多詳細資訊。除了上述解決方案之外,他們還將為您提供mod_rewrite基於 - 的解決方案的提示。

引用自:https://serverfault.com/questions/160582