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中文網其他相關文章!