Nginx と GeoIP モジュールを使用して IP の地域情報を読み取る方法

Nginx と GeoIP モジュールを使用して IP の地域情報を読み取る方法

LinuxにGeoIPをインストールする

yum で nginx-module-geoip をインストールします

http_geoip_module の使用シナリオ

1. 国内と海外のHTTPアクセスルールを区別する

2. 国内の都市と地域を区別してHTTPアクセスルールを作成する

yumをインストールしたら、インストールされたモジュールファイルを見つけます

nginxがyunを使用してインストールされている場合、通常は/etc/nginx/modules/ディレクトリにインストールされます。

注意: nginx が yum によってインストールされておらず、ソース コードからコンパイルされている場合は、このモジュールを使用して nginx を再インストールしてコンパイルする必要があります。その後、このモジュールを手動で追加する必要はありません。

手動でモジュールを追加する

モジュールは、nginx.conf設定ファイルのヘッダー内のhttpと同じレベルでロードされます。

モジュールをロードします "modules/ngx_http_geoip_module.so";
モジュール「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

次に解凍します

モジュールをロードします "modules/ngx_http_geoip_module.so";
モジュール「modules/ngx_stream_geoip_module.so」をロードします。

.......


http{
geoip_country /etc/nginx/geoip/GeoIP.dat; #国IPを読み込む
geoip_city /etc/nginx/geoip/GeoLiteCity.dat; #都市のIPを読み込む

.........

 サーバ
 {
 ......



 位置 / {
 #中国語でない場合は403を返します。
 $geoip_country_code が CN の場合
  403 を返します。
 }
 }
 #国と都市の情報を返す location /myip {
 デフォルトタイプはテキスト/プレーンです。
 200 "$remote_addr $geoip_country_name $geoip_country_code $geoip_city" を返します。
 }



....
 }
}

次に、IP アドレス/myip にアクセスして、IP の国と都市の情報を返します。

NginxとGeoIPモジュールを使用してIPの地域情報を読み取る上記の方法は、エディターがあなたと共有する内容のすべてです。参考になれば幸いです。また、123WORDPRESS.COMを応援していただければ幸いです。

以下もご興味があるかもしれません:
  • 地域負荷分散を実現する Nginx geoip モジュール

<<:  MySQL 1対多関連クエリのページングエラー問題の解決方法

>>:  Windows 8 での MySQL Community Server 5.6 のインストールと設定のチュートリアル

推薦する

JavaScript タイマーの種類の概要

目次1.setInterval() 2.タイムアウトを設定する() 1.setInterval()指...

MySQL の全体的なアーキテクチャの紹介

MySQL の全体的なアーキテクチャは、サーバー層とストレージ エンジン層に分かれています。サーバー...

JenkinsのLinuxインストール手順と各種問題解決(ページアクセス初期化パスワード)

1. Java環境jdk1.8を準備するJavaがインストールされているかどうかを確認します。イン...

CSS ハート型読み込みアニメーションのソースコードの実装

さっそく、コードをお見せしましょう。コードは非常にシンプルなので、勉強すれば理解できるようになります...

Web デザインでフラッシュ オーバーレイ ポップアップ レイヤーの z-index プロパティを設定しても機能しない

デフォルトでは、Flash は常にページのトップレベルに表示されます。つまり、ページに DHTML ...

Linuxプロセスネットワークトラフィック統計の実装プロセス

序文Linux には、ネットワーク接続、プロセス、およびその他の情報をリアルタイムで収集するための対...

MySQL の非主キー自己増分使用例の分析

この記事では、例を使用して、MySQL の非主キーの自己増分の使用方法を説明します。ご参考までに、詳...

docker での psql データベースのバックアップとリカバリの詳細な説明

1. DockerでのPostgresデータベースのバックアップ注文: docker exec it...

CSSでフォントアイコンを使用する方法をお教えします

まず、フォントアイコンとは何でしょうか?表面的にはアイコンですが、実際はテキストです。テキストの設定...

適応幅(パーセンテージ)に応じて Div の高さを調整する純粋な CSS

今日のレスポンシブ レイアウトの要件では、サイズを自動的に調整できる多くの要素で高さと幅の適応を実現...

Ubuntu 20.04 LTSの詳細なインストール履歴

この記事では、USB ブート ディスクの作成とシステムのインストールについて説明します。システム構成...

フロントエンド JavaScript ハウスキーパー package.json

目次1. 必須属性1. 名前2. バージョン2. 説明情報1. 説明2. キーワード3. 著者4. ...

Nginx サービス クイック スタート チュートリアル

目次1. Nginx の紹介1. Nginx とは何ですか? 2. Nginx を使用する理由3. ...

vue-admin-template 動的ルーティング実装例

ログインを提供し、ユーザー情報データインターフェースを取得するapi/user.js内 '@...