Nginx 有办法单独重写 IP 被禁止时的状态码吗?

2022-12-16 16:03:36 +08:00
 edis0n0

领导要求 IP 被 Nginx 禁止时返回 400 状态码而不是 Nginx 默认的 403 ,查了下 error_page 403 400 /400.html; 能把 403 全替换成 400 状态(不用管为什么,反正我又不用这产品),但其它原因导致的 403 我不想动,有办法单独重写 IP 被禁止时的状态码吗?

(黑名单里是几万条机房 IP 段,不知道他们哪里搞来的,测了下还挺准,我在用的几个很小的商家的 IP 段全包括进去了)(因为不用经常变动,感觉在程序里拦效率很低,想直接在 Nginx 里拦)

1037 次点击
所在节点    程序员
8 条回复
wodong
2022-12-16 16:14:49 +08:00
可以考虑给 Nginx 写一个模块拦截一下
dzdh
2022-12-16 16:17:20 +08:00
nginx proxy 给自己。
Puteulanus
2022-12-16 16:20:19 +08:00
Shawns
2022-12-16 16:44:40 +08:00
yc8332
2022-12-16 16:56:44 +08:00
可以 nginx 里面搞个 lua 脚本,取 redis 判断。。读文件应该也可以,没试过就是了
isbase
2022-12-16 17:19:07 +08:00
问他为什么要返回 400
coolloves
2022-12-16 22:10:26 +08:00
nginx 万事不决就 lua
edis0n0
2022-12-16 23:17:18 +08:00
4 楼 Shawns 的方案看起来可行,我试一下

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

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

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

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

© 2021 V2EX