Nginx が IP アドレスに基づいてアクセス制御構成を実装する方法には、特定のコード例が必要です
Nginx は、現在広く使用されている高性能 Web サーバー ソフトウェアです。 Webサーバーとしてだけでなく、リバースプロキシサーバーやロードバランサーなどとしてもご利用いただけます。 Web サーバー アプリケーションでは、セキュリティは非常に重要な考慮事項です。 Nginx は、IP アドレスベースのアクセス制御構成を実装するためのさまざまな方法を提供しており、管理者が Web サイトのリソースへのアクセスを効果的に制御するのに役立ちます。
1. Nginx 設定の IP アドレス変数
Nginx 設定ファイルでは、クライアントの IP アドレスを表すためにいくつかの変数が使用されます。最も一般的に使用されるのは、クライアントの IP アドレスを表す $remote_addr 変数です。
2. シンプルな IP アドレス フィルタリング設定
特定の IP アドレスへのアクセスを許可する
location / { allow 192.168.1.100; deny all; }
上記の設定は、IP アドレス 192.168.1.100 のみを意味します。クライアントがこのロケーション ブロックにアクセスすると、他の IP アドレスを持つクライアントは拒否されます。すべて拒否とは、他のすべての IP アドレスへのアクセスを拒否することを意味します。
特定の IP アドレスへのアクセスを拒否する
location / { deny 192.168.1.200; allow all; }
上記の設定は、IP アドレス 192.168.1.200 を持つクライアントがロケーション ブロックにアクセスすることを許可されていないことを意味します。他の IP アドレスとの併用も許可されます。このうち、「すべて許可」とは、他のすべての IP アドレスからのアクセスを許可することを意味します。
3. 複数の IP アドレス フィルタリングの設定
複数の特定の IP アドレスへのアクセスを許可する
location / { allow 192.168.1.100; allow 192.168.1.200; deny all; }
上記の設定は、単に意味するものです。 IP アドレス 192.168.1.100 および 192.168.1.200 を持つクライアントはロケーション ブロックへのアクセスを許可されますが、他の IP アドレスを持つクライアントは拒否されます。すべて拒否とは、他のすべての IP アドレスへのアクセスを拒否することを意味します。
複数の特定の IP アドレスへのアクセスを拒否する
location / { deny 192.168.1.100; deny 192.168.1.200; allow all; }
上記の構成は、IP アドレス 192.168.1.100 および 192.168.1.200 を持つクライアントがロケーション ブロックにアクセスできないことを意味します。その他の IP アドレスのクライアントは許可されます。このうち、「すべて許可」とは、他のすべての IP アドレスからのアクセスを許可することを意味します。
4. IP アドレス セグメントを使用したフィルタリング構成
Nginx は、アクセス制御構成に IP アドレス セグメントの使用もサポートしています。具体的な構成は次のとおりです:
geo $whitelist { default 0; 192.168.1.0/24 1; } location / { if ($whitelist) { allow all; } deny all; }
上記の設定では、 geo ディレクティブは $whitelist という名前の変数を定義します。この変数の値は、クライアントの IP アドレスが 192.168.1.0/24 ネットワーク セグメント内にあるかどうかに応じて 1 または 0 に設定されます。次に、if ステートメントを使用して、location ブロックへのアクセスが許可されているかどうかを判断します。 $whitelist の値が 1 の場合、すべてのクライアント アクセスが許可されます。それ以外の場合、すべてのアクセスが拒否されます。
要約すると、Nginx は、IP アドレスベースのアクセス制御構成を実装するさまざまな方法を提供します。 Nginx 構成ファイルを適切に設定することで、管理者は実際のニーズに基づいて Web サイトのリソースへのアクセスを柔軟に制御し、Web サイトのセキュリティを向上させることができます。
参考: https://docs.nginx.com/nginx/admin-guide/security-controls/controlling-access-by-client-ip/
以上がNginx が IP アドレスに基づいてアクセス制御構成を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。