在Nginx下針對IP和目錄限速

 Nginx已經是目前僅次於APache和MS IIS的Web服務器。Nginx優秀的高併發支持和高效的負載均衡是我們選擇它的理由。但有時我們希望它能做的更多。本文將向您介紹如何在Nginx下對IP和目錄進行限速,在某種應用場景下,這也是個常見需求。

Nginx可以通過HTTPLimitZoneModule和HTTPCoreModule兩個目錄來限速。

示例:
limit_zone one $binary_remote_addr 10m;

location / {
limit_conn one 1;
limit_rate 100k;
}

說明:

limit_zone,是針對每個IP定義一個存儲session狀態的容器。這個示例中定義了一個10m的容器,按照32bytes/session,可以處理320000個session。

然後針對目錄進行設定。

limit_conn one 1;

是限制每個IP只能發起一個連接。

limit_rate 100k;

是對每個連接限速100k. 注意,這裏是對連接限速,而不是對IP限速。如果一個IP允許兩個併發連接,那麼這個IP就是限速limit_rate x 2。

關於limit_zone的原始文檔,請見 http://wiki.Nginx.org/NginxHttpLimitZoneModule

關於limit_rate和limit_conn的原始文檔,請見 http://wiki.Nginx.org/NginxHttpCoreModule

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章