nginx

nginx//limit 特定のリクエストを制限する

http://nginx.org/en/docs/http/ngx_http_limit_req_module.html

http内で記録先を用意して、location内で制限をする

httpディレクティブ
バイナリリモートアドレスの記録を10MB分用意して1秒に1回のリクエストを受け付ける
limit_req_zone $binary_remote_addr zone=ipblock_a:10m rate=1r/s;
バイナリリモートアドレスの記録を5MB分用意して1分に1回のリクエストを受け付ける
limit_req_zone $binary_remote_addr zone=ipblock_b:5m rate=1r/m;

この場合は「$binary_remote_addr」で制限している、他も可

サーバーのlocationで
ルートへのアクセスを1分間に1度許可し5回で即時制限


indexへのアクセスを1秒間に1回許可して30回で制限していく


admin,userディレクトリへのアクセスを1秒間に1回許可し3回で即時制限し詳細記録を残す


つづいて・・・

エラーページをサーバー単位で設定することもできる。

エラーログ
[error] 14691#0: *121 limiting requests, excess: 5.863 by zone "ipblock_a"・・・
のようになる。

コメントを残す