Nginx實戰(四) 限速功能

樑桂釗發表於2016-10-18

Nginx實戰系列目錄

如果很多使用者,同一時刻下載nginx伺服器上面的資源,這樣會對nginx伺服器的I/O產生極大負擔,所以對nginx伺服器的下載做限速設定很有必要。

首先在 http 段配置一個 limit_zone,然後在需要的地方使用 limit_conn 和 limit_rate 進行限速設定,如下一個簡單的例子。

http {
  limit_zone one $binary_remote_addr 10m;
  server {
    location /files/ {
      limit_conn one 1;
      limit_rate_after 1000k;
      limit_rate 100k;
    }
  }
}
  • limit_zone,是針對每個IP定義一個儲存session狀態的容器。這個示例中定義了一個名叫one的10m大小的容器,這個名字會在後面的limit_conn中使用。
  • limit_conn one 1,限制在one中記錄狀態的每個IP只能發起一個併發連線。
  • limit_rate_after 1000k,在下載1000k後開始限速。
  • limit_rate 100k,對每個連線限速100k. 注意,這裡是對連線限速,而不是對IP限速。如果一個IP允許三個併發連線,那麼這個IP就是限速為limit_rate×3,在設定的時候要根據自己的需要做設定調整,要不然會達不到自己希望的目的。

相關文章