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

2020-07-13 23:15:56 +08:00
 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

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

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

https://www.v2ex.com/t/689743

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

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

© 2021 V2EX