nginx limit模块限制连接数 限制请求数

ngx_http_limit_conn_module 和 ngx_http_limit_req_module是nginx自带的频率限制模块
运用这两个模块,可以简单限制单IP的访问频率,防止单用户耗尽系统资源

nginx也自带限速模块, 限制用户下载速度

以下配置可以放在 http, server, location 自由选择放置位置

################limit 限制###################  
  map $http_x_forwarded_for $clientRealIp { 
    ""  $remote_addr; 
    ~^(?P<firstAddr>[0-9\.]+),?.*$  $firstAddr;
 }
####用户速度限制
 #limit_rate_after 10m; 
 #limit_rate 500K;
 
 ## 限制原始用户 IP 地址TCP连接数
limit_conn_zone $clientRealIp zone=TotalConnLimitZone:20m ;
limit_conn  TotalConnLimitZone  20;
limit_conn_status 444;
#limit_conn_log_level notice;

## 限制原始用户 IP 地址请求数
limit_req_zone $clientRealIp zone=ConnLimitZone:20m  rate=1r/s;
limit_req zone=ConnLimitZone burst=10 nodelay ; #如果开启此条规则,burst=10的限制将会在nginx全局生效
limit_req_status 444;
#limit_req_log_level notice;

具体请查看官方文档
http://nginx.org/en/docs/http/ngx_http_limit_conn_module.html
http://nginx.org/en/docs/http/ngx_http_limit_req_module.html

发表评论