问题描述
在查询nginx日志时,发现某一个IP有小量的频繁爬数据,对业务和系统性能并没有什么影响,频次在10r/s左右,想着还是应该控制下,找到了nginx下有现成的模块可以使用,经过了解学习了 ngx_http_limit_req_module 和 ngx_http_limit_conn_module 这个两个模块。
ngx_http_limit_req_module 介绍
这个模块的功能主要是限制某个 IP 在指定时间内的请求数。
示例配置模板如下
http {
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
...
server {
...
location /search/ {
limit_req zone=one burst=5;
}
示意为每秒不超过1个请求,突发不超过5个请求。
ngx_http_limit_conn_module 介绍
这个模块的功能主要是限制某个 IP 在指定时间内的连接数。
示例配置模板如下
http {
limit_conn_zone $binary_remote_addr zone=addr:10m;
...
server {
...
location /download/ {
limit_conn addr 1;
}
示意为1个并发连接数。
网友评论