Nginx限速遇到的問題

公司使用的是Nginx作文件服務器,最近服務器流量增大,老闆提出要給每一個客戶端進行限速。html

在Nginx中進行限速配置:linux

http { 
  limit_zone one $binary_remote_addr 10m;  
  server { 
    location /download/ { 
 limit_conn one 1; limit_rate 300k; 
    } 
  } 
} 

 

結果提示錯誤:nginx: [emerg] unknown directive "limit_zone" in xxxxnginx

查過資料以後才知道,原來Nginx從v1.1.8版本以後就用limit_conn_zone替換掉了limit_zone,具體見:nginx v1.1.8新語法 limit_conn_zone 替換和 limit_conn 用法服務器

當我修改以後,就能夠啓動了併發

http { 
  limit_conn_zone $binary_remote_addr zone=one:10m; #容器共使用10M的內存來對於IP傳輸開銷
  server { 
    location /download/ { 
      limit_conn one 1;  #限制每一個IP只能發起一個併發鏈接
      limit_rate 300k;   #對每一個鏈接限速300k。
    } 
  } 
} 


#注意,這裏是對鏈接限速,而不是對IP限速。
#若是一個IP容許兩個併發鏈接,那麼這個IP就是限速limit_rate×2。
相關文章
相關標籤/搜索