ホームページ  >  記事  >  運用・保守  >  Nginx および GeoIP モジュールが IP の地理情報を読み取る方法

Nginx および GeoIP モジュールが IP の地理情報を読み取る方法

WBOY
WBOY転載
2023-05-14 15:10:061762ブラウズ

linux インストール geoip

yum install nginx-module-geoip

http_geoip_module 使用シナリオ

1. 国内と海外の http アクセス ルールの違い

2 、国内の都市と地域で 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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。