是否可以根據主機標頭進行速率限制?即不僅僅是IP位址

是否可以根據主機標頭進行速率限制?即不僅僅是IP位址

我正在建立一個 Web 服務端點,人們將在其中發布 xml 文件,並且每秒確實會受到超過 1K 請求的衝擊。

現在他們透過 http post 發送這些 xml 文件,但其中大多數將受到速率限制。

問題是,速率限制將由Web應用程式透過尋找xml中的source_id來完成,如果每分鐘超過x個請求,則不會進一步處理。

我想知道是否可以在處理的早期以某種方式進行速率限制檢查,從而節省 50K 檔案將管道扔到我的 Web 伺服器並消耗資源。

負載平衡器能否以某種方式發出呼叫來驗證費率使用情況?

如果可能的話,我可以將 source_id 放入主機標頭中,這樣即使 XML 檔案也不必解析並載入到記憶體中。

是否可以只查看主機頭而不將整個 50K xml 檔案載入到記憶體中?

我真的很欣賞你的見解,因為這需要更多關於整個 tcp/ip 堆疊等的知識。

答案1

有兩種基本類型的可能性:

1)您正在與敵對的攻擊者打交道,他們不會配合您的設計。在這種情況下,您為什麼關心Host他們發送的標頭?透過 IP 對它們進行速率限制。

2) 您正在與合作的客戶打交道,他們施加的負載超出了您的預期。在這種情況下,只需接受請求並向他們發送回复,告訴他們退後。

如果您遇到更複雜的情況,不屬於這兩個簡單類別之一,則最佳解決方案可能取決於具體情況。

答案2

您可以透過 apache 使用類似的模組來阻止它。或者,如果您想提早將其刪除,您可以使用 iptables 字串匹配通過正規表示式來阻止某些內容。

答案3

這就是TC命令/實用程式是為了 - 這需要一些工作,但值得付出努力。我用它來限制向我們公司 LAN 外的 DMZ 中伺服器的傳輸速率。

這裡有一些讓我走上正軌的連結...

Tc 濾波器 - 連接埠範圍計算遮罩值: http://mailman.ds9a.nl/pipermail/lartc/2007q4/021739.html

限制單一主機或網路遮罩的速率: http://lartc.org/howto/lartc.ratelimit.single.html

http://www.linuxquestions.org/questions/linux-networking-3/limit-bandwidth-rate-for-scp-using-tc-htb-linux-825684/

相關內容