使用反向代理。
在前端 nginx http 中加入 deny ip 是正常的。
现在有需要,根据后端程序产生的 log,进行统计判断自动 deny ip。
后端获取用户真实 IP 地址都是正确的。。
在后端源站 nginx 中加入 deny ip 不起作用。
请各位大佬指教。。
如何在后端源站 nginx 中 deny ip ?
1
zjlletian 2019-01-27 10:52:52 +08:00
前端 nignx 加上 xff,后端通过 xff 判断客户端 ip
|
2
pubby 2019-01-27 10:54:40 +08:00 via Android
换个思路,不要 deny,直接返回 404
|
5
AlisaDestiny 2019-01-27 11:45:13 +08:00
nginx 加入 deny ip 相当于修改了配置文件,要生效需要 reload.
|
6
firebroo 2019-01-27 12:58:36 +08:00 via Android
用 lua 在 nginx 实现 deny 逻辑,deny 数据存 redis
|
7
xmlf OP @AlisaDestiny 当然 reload 了
|
9
zjlletian 2019-01-27 15:49:16 +08:00
@xmlf 你为啥非要 deny ip 呢,自己写一下 if 规则不行么。。。 如果非要 deny,那你前端就不能用七层负载均衡,改用 lvs 可以正确获取用户 ip。
|
11
xmlf OP @zjlletian 我现在思路是,前端从后端源站 wget deny.conf 文件,保存在前端后 nginx reload
|
12
firebroo 2019-01-27 19:45:35 +08:00 via Android
lua 不复杂啊,几行代码
|
13
willis 2019-01-27 19:46:40 +08:00 1
最前端不开 realip,传 xff 到后端,后端 nginx 用 realip 模块 ,把 XFF 设置成 remote addr,后端就能用 deny ip 了,
不过还是建议用 lua + redis,好处是可以按需,不用 reload |
14
popvlovs 2019-01-28 11:27:08 +08:00
lua + redis 比较方便,OpenResty 了解一下
|
15
ducklyl 2019-01-28 11:46:36 +08:00
nginx+lua+redis,在 lua 中过滤禁止 IP.把 IP 列表存入 redis,这样效率较高。可实时验证。
|