Nginx中添加GeoIP库

第一步:下载GeoIP库,下面为百度云网盘下载。

链接:https://pan.baidu.com/s/1oiNFzK1do9T9jyXavvSiLQ
提取码:zjgm

下载后上传到部署Nginx所在的服务器,上传方式可以使用wscp等。我上传的目录为Centos7.6服务器的 /usr/local/share/GeoIP,上传成功后,执行如下命令解压

cd /usr/local/share/GeoIP

tar -zxvf GeoIP-1.4.8.tar.gz

如图所示:

第二步:进入刚才解压的目录,编译,安装GeoIP工具。

执行如下命令

cd /usr/local/share/GeoIP/GeoIP-1.4.8

./configure && make && make install

等待编译,安装完成,安装完成后发现GeoIP文件夹下面自动多了一个GeoIP.dat文件,这与网上说的要另外去下载GeoIP数据库不一样,大家可以直接用它来测试看看能不能用。

这里需要说明下,上面的操作,将工具安装到了/usr/local/lib目录下,我们需要让其生效。需要执行下面的操作

echo '/usr/local/lib' > /etc/ld.so.conf.d/geoip.conf
ldconfig

第三步:在Nginx中加入GeoIP模块

首先进入Nginx文件夹sbin下查看是否已经安装了GeoIP模块

 ./nginx -V

输出结果如下图所示:

 可以看到,configure arguments: --prefix=/usr/local/nginx 参数里面并没有GeoIP信息,证明我们Nginx没有安装GeoIP模块。

下面我们在编译参数里面加入GeoIP模块编译Nginx

进入Nginx源码包,我的源码包位置在 /usr/local/share/nginx/nginx-1.16.1

执行下面的命令 

./configure --prefix=/usr/local/nginx --with-http_geoip_module && make && make install

编译完成后,定位到我们nginx文件sbin目录下,执行如下命令:

./nginx -V

./nginx -s reload

如下图所示,那么Nginx配置GeoIP模块成功

第四步,在Nginx文件中加入下面配置

geoip_country /usr/local/share/GeoIP/GeoIP.dat;

fastcgi_param GEOIP_COUNTRY_CODE $geoip_country_code;
fastcgi_param GEOIP_COUNTRY_CODE3 $geoip_country_code3;
fastcgi_param GEOIP_COUNTRY_NAME $geoip_country_name;

如下图所示,如果IP为国内IP那么定位到本地工程目录,如果为国外IP启动代理地址:

posted @ 2020-03-23 15:18  『天堂有路』  阅读(4939)  评论(0编辑  收藏  举报