技术解析

关于 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

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服