nginx 限流
ngx_http_limit_conn_module 限制并发.
官网地址:https://nginx.org/en/docs/http/ngx_http_limit_conn_module.html
http{
limit_conn_zone $binary_remote_addr zone=connip:20m;
limit_conn_log_level info; 日志级别记录
limit_conn_status 429; #被拒绝时的状态码
server {
...
location / {
limit_conn perip 10; #每个客户端IP的最大连接数,超过返回错误状态码
}
}
}
ngx_http_limit_req_module 限制访问频率
官网地址:https://nginx.org/en/docs/http/ngx_http_limit_req_module.html
http{
limit_req_zone $binary_remote_addr zone=reqip:20m rate=3r/s; #根据请求IP来判断,请求速率每秒不可超过5次
limit_req_status 429; #被拒绝时的状态码
limit_req_log_level info;
server {
...
location {
limit_req zone=perip burst=6;# 平均每秒不超过5个,超过5个会延迟,超过10个返回503错误
}
}
}
ngx_http_core_module。 限制下载
http {
server{
limit_rate_after 1000k;
limit_rate 50k; #超过1000k之后的部分开始限速,限限制速率为50k字节每秒,限制nginx与客户端
}
}
conf文件配置
http {
limit_conn_zone $binary_remote_addr zone=conn:10m;
limit_conn_log_level error;
limit_conn_status 429;
limit_req_zone $binary_remote_addr zone=req:10m rate=25r/s;
limit_req_log_level error;
limit_req_status 429;
...
server {
limit_conn conn 15;
limit_req zone=req burst=3 nodelay;
limit_rate_after 1500k;
limit_rate 100k;
}
}
测试命令:
ab -n 100 -c 20 https://url/

浙公网安备 33010602011771号