关于 Nginx 设置拒绝或允许指定 ip 访问的配置问题
- 0次
- 2021-05-25 13:43:05
- idczone
服务器是 nginx 做 web 服务的,有没有全局的配置一次,就可以拒绝一批 ip 和指定 ua 的办法?
要全局是因为有很多个网抗投诉服务器站,如果在每个网站的 server 块下引入拒绝 ip 的配置文件,那会不会损失性能?因为单 ip 配置文件都 2m 了.
因为我在另一服务器上用 apache 可以在主配置文件加一次拒绝 ip 的配置,目录下所有网站都可以生效.想问问 nginx 有没有同样的方法.或者可以在 centos 防火墙上可以设置?
apache 配置:
SetEnvIfNoCase User-Agent "SemrushBot" badbots
Order deny,allow
deny from env=badbots
deny from 1.1.1.0/23
...
deny 1.1.1.0/23;
非常感谢,可以了,只是不能设置 User-Agent 访问了,手动在每个 sever 配置 User-Agent 规则就没有每个设置 ip 规则那么麻烦了.
为啥不用 iptables
Nginx+lua
https://github.com/XOS/ngx_lua_waf
网站套了 cf iptables 不知道为什么没有用了,nginx 有设置 real_ip_header CF-Connecting-IP;
real ip 只对 Nginx 自身有效
使用 openresty 代替 nginx,lua 脚本访问 redis 或 mysql 集中控制
当然可以,然而不建议这么做,业务系统的事情,不要放在 iptables 或 nginx 层面来解决
用动态 location,随便更新,也不影响.
nginx.zone