废话不多说,直接上配置文件
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配置上去即可