Nginx 能实现类似于 fail2ban 一样的,限制访问频率的效果吗?
資深大佬 : Richard14 9
初学 Nginx,很多东西不是很懂,百度搜了一下没有类似解决方案。
想要实现的效果是用 NGinx 限制单个 IP 对登录 api 的调用次数,比如每 30 分钟里最多访问五次之类的。类似于 fail2ban,但是不用判断成功与否,到次数都一律屏蔽就对了。百度搜到的大多是每秒钟访问多少次的限制说明,感觉不是很符合需求
大佬有話說 (6)
初学 Nginx,很多东西不是很懂,百度搜了一下没有类似解决方案。
想要实现的效果是用 NGinx 限制单个 IP 对登录 api 的调用次数,比如每 30 分钟里最多访问五次之类的。类似于 fail2ban,但是不用判断成功与否,到次数都一律屏蔽就对了。百度搜到的大多是每秒钟访问多少次的限制说明,感觉不是很符合需求
limit_req_zone $binary_remote_addr zone=example_com:10m rate=1r/s;
不是对全局都加上 1r/s 的限制了么,感觉不太对啊。
另外我在看 nginx.conf 的时候发现 gzip 模块居然默认是开的,但是我反向代理的时候返回的请求从来没被压缩过。。这是怎么回事
server {
…
# 仅登录接口做限流
location /login {
limit_req zone=limit_ip nodelay;
…
}
# 其余接口不做限流
location … {
…
}
}
}
“`