ngx_http_ipip_module 为 Nginx 集成 ipip 的插件 - 文章教程

ngx_http_ipip_module 为 Nginx 集成 ipip 的插件

发布于 2021-09-19 字数 2804 浏览 812 评论 0

如何使用

为 ngx_http_ipip_module 设置 nginx 配置如下:

http {
    ipip_ip_datx /xx/real_ip.datx;
    ipip_phone_txt /xx/real_phone.txt;

    server {
        listen 1999;

        location / {
                ipip on;
        }
    }
}

现在你可以得到如下的 ip 信息:

[root@localhost ~]# curl "http://127.0.0.1:1999/ip?ip=8.8.8.8"
{
    "ret":  "ok",
    "data": ["GOOGLE", "GOOGLE", "", "google.com", "level3.com", "", "", "", "", "", "", "*", "*"]
}

或者您可以通过以下方式获取电话信息:

[root@localhost ~]# curl "http://127.0.0.1:1999/phone?phone=13000000101"
{
    "ret":  "ok",
    "data": ["北京", "北京", "中国联通网络"]
}

如何自动更新

根据 ipip 的 check-version api ,我们可以自动检查 ip 和手机版本。我们建议使用 crontab 来自动更新,如下所示:

1 3 * * * xx flock -n /xx/ipip.lock /path/to/ngx_http_ipip_module/scripts/autoupdate.sh &> /data/logs/ipinfo.log

顺便说一下,您必须将作为ipip上令牌的私有数据设置为 scripts/var 文件,如下所示:

export IPTOKEN=aaaaaaaaaaaaaaaaaaaaaaaaaaa
export PHONETOKEN=bbbbbbbbbbbbbbbbbbbbbbbbbbbb
export PATH=/opt/nginx/sbin:$PATH

您也可以重写 autoupdate.sh 以适合自己。并且 fake_ip.datxfake_phone.txt 是为了运行测试的假文件(建议我们从 ipip 购买服务以获取真实文件)。

要求

ngx_http_ipip_module 需要以下内容才能运行:

选项

ipip_ip_datx

设置 ip datx 文件

  • Syntax: ipip_ip_datx /path/to/file
  • Default:
  • Context: main
http {
    ipip_ip_datx /xx/real_ip.datx;
}

ipip_phone_txt

设置手机 txt 文件

  • Syntax: ipip_phone_txt /path/to/file
  • Default:
  • Context: main
http {
    ipip_phone_txt /xx/real_phone.txt;
}

ipip

启用 ngx_http_ipip_module

  • Syntax: ipip on|false
  • Default:
  • Context: loc
location / {
    ipip on;
}

项目地址:https://github.com/youzan/ngx_http_ipip_module

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

目前还没有任何评论,快来抢沙发吧!

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

2512 文章
30 评论
82712 人气
更多

推荐作者

瑾兮

文章 11 评论 2

carlo_sn

文章 0 评论 0

15867725375

文章 0 评论 0

a3576419

文章 0 评论 0

wendy

文章 0 评论 0