首頁  >  文章  >  運維  >  Nginx和GeoIP模組如何讀取IP所在的地理資訊

Nginx和GeoIP模組如何讀取IP所在的地理資訊

WBOY
WBOY轉載
2023-05-14 15:10:061727瀏覽

linux安裝geoip

yum install nginx-module-geoip

http_geoip_module使用場景

一、區別國內外作http存取規則

二、區別國內城市地域作http訪問規則

yum 安裝好後找到安裝的模組檔案

如果nginx是用yun安裝的一般是安裝到/etc/nginx/modules/目錄下

注意:如果nginx不是yum安裝的而是原始碼編譯安裝的需要從新安裝編譯一次nginx加上此模組,然後就不用手動加入此模組了。

手動加入模組

在nginx.conf設定檔的頭部載入模組和http是相同等級的

load_module "modules/ngx_http_geoip_module.so";
load_module "modules/ngx_stream_geoip_module.so";

因為geoip是基於maxmind 提供了資料庫檔案來讀取地域資訊的所以需要下載ip的地域檔案。

這個資料庫是二進位的,不能用文字編輯器打開,需要上面的 geoip 函式庫來讀取。

wget http://geolite.maxmind.com/download/geoip/database/geolitecountry/geoip.dat.gz #国家的地域ip
wget http://geolite.maxmind.com/download/geoip/database/geolitecity.dat.gz  #城市的地域ip

然後解壓縮

load_module "modules/ngx_http_geoip_module.so";
load_module "modules/ngx_stream_geoip_module.so";

.......


http{
geoip_country /etc/nginx/geoip/geoip.dat; #加载国家ip
geoip_city /etc/nginx/geoip/geolitecity.dat; #加载城市ip

.........

 server
 {
 ......



 location / {
 #判断如果不是中国的就返回403;
 if ($geoip_country_code != cn) {
  return 403;
 }
 }
 #返回国家城市信息
 location /myip {
 default_type text/plain;
 return 200 "$remote_addr $geoip_country_name $geoip_country_code $geoip_city";
 }



....
 }
}

然後訪問 你的ip位址/myip 就可以回傳ip所在的國家城市資訊了。

以上是Nginx和GeoIP模組如何讀取IP所在的地理資訊的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除