Nginx(七):Nginx请求限制
连接限制语法
Syntax : limit _conn_zone key zone=name:size
Default : ——
Context : http
Syntax : limit_conn_zone number
Default : ——
Context : http,server,location
请求限制连接语法
Syntax : limit_req_zone key zone=name:size rate=rate
Default :——
Context:http
Syntax :limit _req zone=name [burst=number][nodelay]
Default:——
Context:http,server,location
default.conf如下
limit_conn_zone $binary_remote_addr zone=conn_zone:1m; limit_req_zone $binary_remote_addr zone=req_zone:1m rate=1r/s; server { listen 80; server_name localhost; location / { root /opt/app/code; limit_conn conn_zone 1; #limit_req zone=req_zone burst=3 nodelay; #limit_req zone=req_zone burst=3; #limit_req zone=req_zone; index index.html index.htm; } error_page 500 502 503 504 404 /50x.html; location = /50x.html { root /usr/share/nginx/html; } }
测试:(安装ab测试工具)
limit_req zone=req_zone; 结果如下(红色部分效果展示):
根据 limit_req_zone $binary_remote_addr zone=req_zone:1m rate=1r/s;
测试结果正确,放大测试范围结果也OK
Concurrency Level: 100 Time taken for tests: 0.015 seconds Complete requests: 100 Failed requests: 99 (Connect: 0, Receive: 0, Length: 99, Exceptions: 0) Write errors: 0 Non-2xx responses: 99
limit_req zone=req_zone burst=3 nodelay 结果如下(红色部分效果展示):
burst=3 表示最大延迟请求数量不大于3 nodelay 如果太过多的请求被限制延迟是不需要的 ,这时需要使用nodelay参数,服务器会立刻返回503状态码
[root@smoker-linux conf.d]# ab -n 100 -c 100 http://39.105.12.8/index.html
... ...
Server Software: nginx/1.14.0 Server Hostname: 39.105.12.8 Server Port: 80 Document Path: /index.html Document Length: 671 bytes Concurrency Level: 100 Time taken for tests: 0.123 seconds Complete requests: 100 Failed requests: 96 (Connect: 0, Receive: 0, Length: 96, Exceptions: 0) Write errors: 0 Non-2xx responses: 96 Total transferred: 73792 bytes HTML transferred: 54236 bytes Requests per second: 811.64 [#/sec] (mean) Time per request: 123.208 [ms] (mean) Time per request: 1.232 [ms] (mean, across all concurrent requests) Transfer rate: 584.88 [Kbytes/sec] received
... ...
下面这个。。。测试未成功过
limit_conn conn_zone 1;
limit_conn one 1表示该location段使用one定义的 limit_conn_zone ,对单个IP限制同时存在一个连接
浙公网安备 33010602011771号