geoip を使用して nginx で地域を制限する方法

geoip を使用して nginx で地域を制限する方法

このブログは仕事のメモです

環境:

nginx バージョン: nginx/1.14.0

Centos バージョン: Centos7

要件は次のとおりです。

国内と海外の IP アドレスを区別して、異なるページにジャンプします。最後に、nginx のサードパーティ モジュール geoip を使用してこれを実現します。その利点については説明しません。インターネット上に多くの説明があります。設定方法を見てみましょう。

私のシステムは nignx.repo で構成されています。モジュールを追加して再コンパイルせずに、yum を使用して geoip モジュールを直接インストールしました。

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

geoipデータベースファイルをダウンロードする

cd /etc/nginx
mkdir geoipdat
cd ジオイプダット

wget をダウンロード http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz を取得します。

gunzip GeoIP.dat.gz を解凍します
gunzip GeoLiteCity.dat.gz

ニーズに応じてnginxを設定する

まず、nginx.conf で geoip ライブラリをロードし、次のように設定します。

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

ユーザー nginx;
ワーカープロセス 1;

error_log /var/log/nginx/error.log 警告;
pid /var/run/nginx.pid;


イベント {
  ワーカー接続 1024;
}


http {
  /etc/nginx/mime.types を含めます。
  デフォルトタイプ アプリケーション/オクテットストリーム;

  log_format main '$remote_addr - $remote_user [$time_local] "$request" '
           '$status $body_bytes_sent "$http_referer" '
           '"$http_user_agent" "$http_x_forwarded_for"';

  access_log /var/log/nginx/access.log メイン;

  ファイル送信オン;
  #tcp_nopush オン;

  キープアライブタイムアウト65;

  #gzip オン;

  /etc/nginx/conf.d/*.conf を含めます。
}

仮想ホストを次のように設定します。

geoip_country /etc/nginx/geoipdat/GeoIP.dat;
geoip_city /etc/nginx/geoipdat/GeoLiteCity.dat;


サーバー{
  聞く 80;
  server_name ローカルホスト;
  位置 / {
 ルート /opt;
 ($geoip_country_code = CN)の場合{
 書き換え (.*) /zh$1 break;
 }
    書き換え (.*) /en$1 break;
  }
    エラーページ 500 502 503 504 /50x.html;
  場所 = /50x.html {
    ルート /usr/share/nginx/html;
  }

}

optディレクトリは次のとおりです

[root@VM_0_15_centos opt]# ツリー
。
|
└── ja
│ └── 索引.html
└── ja
  └──index.html

上記は単なる簡単な構成です。 。 。 。

nginx で地域制限に geoip を使用する上記の方法は、エディターが皆さんと共有する内容のすべてです。参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Nginxは特定のページへのIPアクセスを制限します
  • 同じ IP のアクセス頻度を制限するように nginx を設定する方法
  • Nginx サーバーの ip と user_gent によるアクセス制限方法の分析
  • nginx 制限 IP による SMS インターフェースへの悪意のある呼び出しの処理方法
  • Nginxは、同じ期間内の特定のIPへの訪問とリクエストの数を制限します。サンプルコード
  • Nginx サーバーが IP アクセスを制限するさまざまな状況の完全な分析
  • Nginx で同時 IP とダウンロード速度を制限する方法
  • 同時 IP アクセスを制限し、IP 接続を制限するように nginx と apache を設定する方法
  • Nginx をベースに特定の IP への短期アクセス数を制限する

<<:  MySQL 5.7.16 無料インストール版のインストールと設定方法のグラフィックチュートリアル

>>:  VueとFlask間の通信の実装

推薦する

Reactドラッグフックを実装するための100行以上のコード

序文ソースコードは合計で 100 行強しかありません。これを読めば、react-dnd などの成熟し...

Dockerの基本的なネットワーク構成の詳細な説明

外部アクセスポートをランダムにマップする -P フラグを使用すると、Docker は 49000 か...

Three.js が Facebook Metaverse 3D ダイナミック ロゴ効果を実現

目次背景メタバースとは何ですか?成果を達成するトライアル 1: THREE.TorusGeometr...

Vueはコンピュータカメラを呼び出して写真機能を実現します

この記事の例では、コンピュータカメラを呼び出して写真機能を実現するためのvueの具体的なコードを参考...

CocosCreator でレイヤー管理に常駐ノードを使用する方法

CocosCreator バージョン: 2.3.4ほとんどのゲームにはレイヤー管理機能があり、例えば...

mysql 5.7.5 m15 winx64.zip インストール チュートリアル

win7 64 ビットで mysql-5.7.5-m15-winx64 をインストールして構成する方...

高同時実行シナリオにおける nginx 最適化の詳細な説明

日常の運用・保守作業では、nginx サービスが頻繁に使用され、nginx の高同時実行性によって生...

MySQLソートにおけるCASE WHENの使用例

序文以前のプロジェクトでは、SQL の CASE WHEN ソート関数が使用されました。ではブログメ...

nginxの基礎を学ぶ

目次1. nginx とは何ですか? 2. nginx で何ができるのか? 2.1 フォワードプロキ...

IIS7~IIS8.5 サーバープロトコルヘッダーの削除または変更

要件: IIS 7、7.5、8.0、8.5、および ASP.NET で HTTP 応答ヘッダーを削除...

Dockerイメージの階層化の原理の詳細な説明

ベースイメージベースイメージには 2 つの意味があります。他のイメージに依存せず、ゼロから構築します...

無効な Nginx クロスドメイン設定 Access-Control-Allow-Origin の解決策

nginx バージョン 1.11.3次の構成を使用すると、検証は無効になり、クロスドメインの問題が依...

HTML のセルパディングとセルスペース属性を図で説明します

セル - 表の内容 セルの余白 (表の余白) (cellpadding) - セルの外側の距離を表し...

MySQL でコマンドを使用して階層検索を実現する方法の詳細な説明

序文この記事は主にMySQLコマンド階層検索ヘルプの使用に関する内容を紹介します。この記事のサンプル...

MySQLアカウントのIP制限条件を変更する方法

序文最近、仕事で、MySQL ユーザーの権限を変更するには、特定の IP アドレスへのアクセスを制限...