【Nginx】限流配置
http {
include mime.types;
default_type application/octet-stream;
#1、限流设置
limit_req_zone $binary_remote_addr zone=contentRateLimit:10m rate=2r/s;
#2、根据IP地址来限制,存储内存大小10M
limit_conn_zone $binary_remote_addr zone=addr:1m;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 80;
server_name localhost;
location /{
#3、表示同一个地址只允许连接2次
limit_conn addr 2;
proxy_pass http://ip:port;
}
}
}
代码中的123,分别配置上去,然后重启nginx,测试一下对应接口是否会有限流
上面的代码中,限制的连接数是2,如果使用Jmeter制造>2的并发,那就会报错了,所以接下来需要限制每个客户端的ip与服务器的连接数,同时限制与虚拟服务器的连接总数
http {
include mime.types;
default_type application/octet-stream;
#1
limit_conn_zone $binary_remote_addr zone=perip:10m;
#2
limit_conn_zone $server_name zone=perserver:10m;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 80;
server_name localhost;
location /{
#3
limit_conn perip 10;#单个客户端ip与服务器的连接数.
#4
limit_conn perserver 100; #限制与服务器的总连接数
proxy_pass http://ip:port;
}
}
}
代码中的1234配置上去即可