【问题标题】:Can I perform GeoIP blocking in NGINX without having to pay for NGINX Plus?我可以在 NGINX 中执行 GeoIP 阻止而无需为 NGINX Plus 付费吗?
【发布时间】:2019-01-04 17:39:20
【问题描述】:

我是一名 Fedora 29 最终用户,正在寻找一种通过 NGINX 执行 GeoIP 阻止的方法,而无需为 Nginx Plus 支付大量美元。我看到 NGINX 可以设置为包含模块,并想询问是否有任何开源模块可用于执行基本的 GeoIP 阻塞。

谢谢,

【问题讨论】:

  • 也许尝试用这个模块编译? nginx.org/en/docs/http/ngx_http_geoip_module.html
  • @RyanZ 这似乎是一个规范文档,而不是实际代码。我看到了一个带有一些 C 代码的 GitHub 存储库,但我不确定是否会这样。

标签: nginx geoip


【解决方案1】:

您可以通过在 nginx 构建配置中添加“--with-http_geoip_module”来构建 nginx 并从 nginx https://nginx.org/en/docs/http/ngx_http_geoip_module.html 添加 geoip 模块。

然后在您的 nginx.conf 中指定 geoip_country 或 geoip_city 后跟 geoip db 的路径

https://docs.nginx.com/nginx/admin-guide/security-controls/controlling-access-by-geoip/ 还可以帮助为开源或 nginx plus 设置 geoip

编辑:GeoIP 已弃用,但仍适用于现有安装。

您可以使用 nginx 从源代码 https://github.com/leev/ngx_http_geoip2_module 以与以前类似的方式构建 GeoIP2

这里是较新的 geoip2 数据库Geolite2 Country

【讨论】:

  • 我可能会选择通过源代码编译。我只是更喜欢从 repo 安装它以便于更新。
  • 您会注意到,在发布此答案后仅几天,geoip Maxmind 数据库就被删除了(它们已经被弃用了很长一段时间)。您现在需要 a) 使用 geoip2 构建您自己的 nginx 二进制文件/模块或 b) 升级到 nginx-plus,其中 包括 geiop2
猜你喜欢
  • 2022-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-23
  • 2020-12-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多