Nginx で特定の IP を無効にする方法はいくつかあります。
1.deny
命令を使用する: Nginx 構成ファイルで、deny
特定の IP からのアクセスを禁止する命令を使用できます。たとえば、IP アドレス 192.168.1.100 へのアクセスを拒否するには、構成ファイルに次の内容を追加します。
location / {
deny 192.168.1.100;
...
}
このようにして、リクエストが IP アドレス 192.168.1.100 から来た場合、Nginx は 403 Forbidden エラーを返します。
allow
2. 使用法と指示の組み合わせdeny
: IP アクセスは、使用法allow
と指示deny
の組み合わせによって制限できます。たとえば、IP アドレス 192.168.1.0/24 からのアクセスを許可し、IP アドレス 192.168.1.100 からのアクセスを拒否するには、構成ファイルに次の内容を追加します。
location / {
allow 192.168.1.0/24;
deny 192.168.1.100;
...
}
これにより、IP アドレス 192.168.1.100 のリクエストを除き、他の IP アドレスによるアクセスが許可されます。
3. HTTP モジュールlimit_conn
とディレクティブを使用します。とディレクティブlimit_req
を使用して特定の IP からのアクセスを禁止するだけでなく、HTTP モジュールとディレクティブを使用して、特定の IP への接続数と要求頻度を制限することもできます。これらのディレクティブは、Nginx の構成ファイル内のブロックに設定できます。たとえば、IP アドレス 192.168.1.100 の接続数を 1 に制限し、そのリクエスト頻度を 10 リクエスト/秒に制限するには、構成ファイルに次の内容を追加します。deny
allow
limit_conn
limit_req
http
http {
...
limit_conn_zone $binary_remote_addr zone=conn_limit_per_ip:10m;
limit_conn conn_limit_per_ip 1;
limit_req_zone $binary_remote_addr zone=req_limit_per_ip:10m rate=10r/s;
limit_req zone=req_limit_per_ip burst=20;
...
}
このように、IP アドレス 192.168.1.100 のクライアントの接続数が 1 を超えるか、リクエスト頻度が 10 リクエスト/秒を超えると、Nginx はアクセスを制限します。上記の方法により、Nginx の特定の IP へのアクセスを効果的に無効にすることができます。