nginx 如何多站点配置屏蔽 geo?

2019-10-16 13:33:35 +08:00
 178620086

我知道可以在 server 节点下面配置

if ($geoip_country_code = JP) { return 403; }

请问能在 http 下配置吗?或者有其他方式可以实现,多个 server 都实现这个拦截

3115 次点击
所在节点    NGINX
6 条回复
lihongjie0209
2019-10-16 13:42:01 +08:00
include 不行吗???
178620086
2019-10-16 15:13:48 +08:00
虽然也可以,但是我每次新增一个 server 就要配置一下,怪麻烦的
yutian2211
2019-10-16 15:42:15 +08:00
Syntax: if (condition) { ... }
Default: —
Context: server, location

不可以放到 http 下
flyingghost
2019-10-16 16:25:06 +08:00
前置一个 nginx 反代专做过滤。
Nick66
2019-10-16 16:34:14 +08:00
if 不能写在 http 区块
eason1874
2019-10-16 19:33:13 +08:00
用 lua-nginx-module 可以直接在 http 段写访问控制。

access_by_lua_block {
if ngx.var.geoip_country_code == 'JP' then
ngx.exit(403)
end
}

大概是这样,这个模块非常好用。

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

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

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

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

© 2021 V2EX