勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ

Nginxでアクセス量の制御を行う方法(ngx_http_limit_req_module)

  Nginx サーバー

サイト内のあるファイルやページに対してアクセス拒否はできない(したくない)が、不正と思われるような大量アクセスを防ぎたいというケースがある。Nginxでngx_http_limit_req_moduleを使用することで大量アクセスの際に503を返してくれるようになるらしい。以下に導入方法をメモ。

 

対応方法

設定ファイル

# 制限ルールを定義(nginx.confのhttpブロック内に記述)
limit_req_zone $binary_remote_addr zone=login_limit:10m rate=1r/s;

# 制限したいディレクトリを指定
location = /limit/ {
    limit_req zone=login_limit burst=5 nodelay;
}

注意点

アクセスIPやアクセス回数等はメモリ上に保存されるため、Nginxを再起動するとリセットされる点に注意。

 

リファレンス

ngx_http_limit_req_module

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

 

参考サイト

https://miraitranslate-tech.hatenablog.jp/entry/nginx-limit-req

 - Nginx サーバー

  関連記事

Nginxでリダイレクト(http->https)及びリライト設定
Nginxでリダイレクト(http->https)及びリライト設定

Nginxでhttpアクセス時にhttpsリダイレクトさせたい。それとは別に「h ...

コンテナ側のApacheのアクセスログにリバースプロキシのIPではなく本来のアクセスIPを出力する方法
コンテナ側のApacheのアクセスログにリバースプロキシのIPではなく本来のアクセスIPを出力する方法

ホスト側Nginxからリバースプロキシ経由でApacheコンテナに接続する環境に ...

NginxでアクセスIP制限(ブラックリスト / ホワイトリスト)を行う方法
NginxでアクセスIP制限(ブラックリスト / ホワイトリスト)を行う方法

NginxでアクセスIP制限を試してみたい。また、特定のIPのみ許可するホワイト ...

Nginxで特定のディレクトリに対してBasic認証を設定
Nginxで特定のディレクトリに対してBasic認証を設定

Nginxで特定のディレクトリに対してBasic認証を設定したい。Apacheだ ...

AlmaLinux8系にNginxを導入しPodmanコンテナに接続する方法
AlmaLinux8系にNginxを導入しPodmanコンテナに接続する方法

AlmaLinux8でホスト側はApacheからPodmanコンテナ環境に接続し ...