エンジニアブログ

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

2019.06.30

担当した案件で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;                                              

関連キーワード

この記事をシェアする

Facebook Twitter LINE はてなブックマーク

この記事を読んだ方に
おすすめの記事