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

WBOY
リリース: 2023-05-14 15:10:06
転載
1767 人が閲覧しました

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 までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート