nginx限流

nginx限流,

第一步:limit定义项,必须写在http{}内

第一种,对服务器server_name的请求次数限流

1
2
3
4
5
6
7
8
9
limit_conn_zone $server_name zone=one:10m;
limit_conn_status 503;
#########解析如下################################

#limit_conn_zonelimit类型为conn连接类型
#$server_name对服务器域名做限制
#zone=one定义limit域标识为one
#zone中10m 表示一个大小为10M名字为one的内存区域1M能存储16000 IP地址的访问信息10M可以存储16W IP地址访问信息
#limit_conn_status状态码可以自定义也可以使用默认的503

第二种,对单个IP客户端的请求次数限流

1
2
#基于客户端IP做连接限制  限制同一IP并发为1  下载速度为100K
limit_req_zone $binary_remote_addr zone=two:10m  rate=1r/s; 

第二步,limit规则,可以针对location{}内

1
2
3
4
5
6
7
8
      location /download {
        #针对请求数量,爆发存量 burst=2
         limit_req zone=two burst=2 nodelay;
         #连接数为2
         limit_conn one 2;
         #下载限速为100k
         limit_rate 100k;
        }

其他,现在ip地址访问

第一种,再server中配置ip

第二种,通过include增加策略