LoginSignup
1
1

More than 3 years have passed since last update.

Nginxにて秒間あたりのリクエスト数を制限する方法

Posted at

担当した案件でNginxをリバースプロキシサーバとして利用した際にNginxにてバックエンドのサーバに流れる流量の制限を実施した際の

手法について記載する。

メインの設定ファイルであるnginx.conf内に「limit_req_zone」をhttp、server、locationディレクティブいずれかの配下に追加することにより、

設定することが可能となる。

以下の記載方法においては後段記載の内容となる。

limit_req_zone $server_name zone=one:10m rate=10r/s;

$server_nameの部分は複数のバーチャルサーバのconf記載がある場合などに利用出来る。

例えば、別々のバックエンドサーバの振り分けに置いて流量を制限したい場合などに1サーバごとの設定として制限したい場合の記載方法である。

zone="one"の部分は、任意で名称を決めれる部分であり後述するバーチャルサーバごとのconf内でしてすることができる。

rate=10r/sの意味は秒間10リクエスト数にて制限する記載内容である。

参考にしたサイト
http://infra.hatenablog.com/entry/2014/01/27/224342
http://mogile.web.fc2.com/nginx/http/ngx_http_limit_req_module.html

基本的な設定
https://qiita.com/hclo/items/35f00b266506a707447e

全体のサンプル
https://www.nginx.com/resources/wiki/start/topics/examples/full/

nginx.confの記載例(httpディレクティブ内に以下を追記)

 limit_req_zone $server_name zone=one:10m rate=10r/s;

バーチャルサーバ向けconfの記載例(locationディレクティブ内に以下を追記、上記nginx.confにて定義したzoneを指定する

 limit_req zone=one burst=10 nodelay;                                              
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1