今天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 版權聲明:本文為博主原創文章,轉載請附上博文鏈接!