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启动代理地址:
大千世界,就等着你的发掘!