nginx限制單個IP的最大連接數量限制下載速度


今天seafile服務因為測試在下載文件的時候,帶寬占用過大,導致seafile客戶端無法登陸的問題。

我們公司的seafile是通過nginx代理的8000端口,因此我這邊通過修改nginx配置來解決這個問題。

這些是根據自身生產經過測試得到的比較合適的值,不適合直接復制。

這里利用nginx -s reload平滑重啟以及nginx的 ngx_http_limit_conn_module 模塊

官網上沒說默認的速度與數量。

最后的結果:我們將連接數量調到比較大的值200,下載速度調到20。網速是沒有變化的,但是客戶端登陸不再受影響。

http {
  limit_conn_zone $binary_remote_addr zone = conn:10m;
  #定義一個名為conn的limit_conn_zone用來存儲session,大小是10M內存,1M能存儲16000個狀態;
  #$binary_remote_addr是限制同一客戶端ip地址;
  #$server_name是限制同一server最大並發數;

  limit_req_zone $binary_remote_addr zone=allips:10m rate=20r/s;###我沒修改這個
  #定義一個名為allips的limit_req_zone用來存儲session,大小是10M內存,1M能存儲16000個狀態,以$binary_remote_addr為key,限制平均每秒的請求為20個,rate的值必須為整數,如果限制兩秒鍾一個請求,可以設置成30r/m

  server{

       location {
           limit_conn conn 20;                           
           #limit_conn為限制並發連接數;

           limit_rate 500k;             
           #limit_rate為限制下載速度;

           limit_req zone=allips burst=5 nodelay;   ### 這個也沒用到  
           #限制每ip每秒不超過20個請求,漏桶數burst為5,brust的意思是,如果第1秒、2,3,4秒請求為19個,第5秒的請求為25個是被允許的。但是如果你第1秒就25個請求,第2秒超過20的請求返回503錯誤。nodelay,如果不設置該選項,嚴格使用平均速率限制請求數,第1秒25個請求時,5個請求放到第2秒執行,設置nodelay,25個請求將在第1秒執行。

       }
    }
--------------------- 
作者:Sp4rkW 
來源:CSDN 
原文:https://blog.csdn.net/wy_97/article/details/79369712 
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM