nginxで特定のIPアドレスからのアクセスを禁止するには、nginx
の設定ファイルに以下のような設定を追加します。この設定は通常、nginxのメイン設定ファイル(nginx.conf
)やサイトごとの設定ファイルに追加します。
手順
-
設定ファイルを開く
nginx.conf
または対象のサーバブロックがある設定ファイルを編集します。
通常は、次のように設定ファイルを編集します。sudo nano /etc/nginx/nginx.conf
-
設定を追加する
server
ブロックの中に、以下のようにdeny
ディレクティブを追加します。server { listen 80; server_name example.com; # 特定のIPアドレスからのアクセスを禁止 deny 192.168.1.100; # 禁止したいIPアドレス deny 203.0.113.0/24; # サブネット全体を禁止する場合 # 許可するIPアドレスがある場合はallowを使用 allow 192.168.1.0/24; # 他のIPアドレスからのアクセスを許可 allow all; location / { # 通常の設定 proxy_pass http://localhost:3000; } }
設定をテストする
設定ファイルにエラーがないか確認するため、以下のコマンドを実行します。sudo nginx -t
-
nginxを再起動する
設定ファイルが正しい場合、nginxを再起動して設定を反映させます。sudo systemctl restart nginx
補足
-
deny
ディレクティブに指定されたIPアドレスは、403 Forbiddenエラーが返されます。 - 特定のIPだけを許可する場合は、
allow
ディレクティブを使用し、許可したいIP以外のアクセスを禁止するように設定することもできます。
この設定により、指定したIPアドレスやサブネットからのアクセスを制限することができます。