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,在設置的時候要根據自己的需要做設置調整,要不然會達不到自己希望的目的。

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