关于 Nginx 设置拒绝或允许指定 ip 访问的配置问题

2020 年 7 月 13 日
 bavtoex
服务器是 nginx 做 web 服务的,有没有全局的配置一次,就可以拒绝一批 ip 和指定 ua 的办法?

要全局是因为有很多个网站,如果在每个网站的 server 块下引入拒绝 ip 的配置文件,那会不会损失性能?因为单 ip 配置文件都 2m 了.

因为我在另一服务器上用 apache 可以在主配置文件加一次拒绝 ip 的配置,目录下所有网站都可以生效.想问问 nginx 有没有同样的方法.或者可以在 centos 防火墙上可以设置?

apache 配置:

<Directory "/www/wwwroot/">

SetEnvIfNoCase User-Agent "SemrushBot" badbots

Order deny,allow

deny from env=badbots

deny from 1.1.1.0/23

...
3296 次点击
所在节点    NGINX
10 条回复
ik
2020 年 7 月 13 日
deny 1.1.1.0/23;
bavtoex
2020 年 7 月 13 日
@ik 非常感谢,可以了,只是不能设置 User-Agent 访问了,手动在每个 sever 配置 User-Agent 规则就没有每个设置 ip 规则那么麻烦了.
stefanaka
2020 年 7 月 13 日
为啥不用 iptables
Girls
2020 年 7 月 14 日
bavtoex
2020 年 7 月 14 日
@nieqibest 网站套了 cf iptables 不知道为什么没有用了,nginx 有设置 real_ip_header CF-Connecting-IP;
chinvo
2020 年 7 月 14 日
@bavtoex #5 real ip 只对 Nginx 自身有效
zhouzm
2020 年 7 月 14 日
使用 openresty 代替 nginx,lua 脚本访问 redis 或 mysql 集中控制
Randall
2020 年 7 月 14 日
当然可以,然而不建议这么做,业务系统的事情,不要放在 iptables 或 nginx 层面来解决
monkeyNik
2020 年 7 月 21 日
@Randall 用动态 location,随便更新,也不影响.
monkeyNik
2020 年 7 月 21 日
@monkeyNik nginx.zone

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.xtra.eu.org/t/689743

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX