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啟動代理地址:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM