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

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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
發布: 2023-05-14 15:10:06
轉載
1862 人瀏覽過

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

相關標籤:
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
重啟nginx出錯
來自於 1970-01-01 08:00:00
0
0
0
server - Nginx設定webapp問題
來自於 1970-01-01 08:00:00
0
0
0
centos7 - NGINX出現異常
來自於 1970-01-01 08:00:00
0
0
0
Nginx的default.conf問題
來自於 1970-01-01 08:00:00
0
0
0
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板