2013-07-08 20 views
6

私たちはバックエンドとしてアプリケーションサーバーを使用してnginxを使用します。Nginx:バックエンドへのIPあたりの同時接続数の制限

バックエンドにIPあたりの同時接続数を制限する必要があります。私たちはこの目的のためにlimit_conn nginx指令を使用しました。しかし、すべてのケースでうまく機能しません。 ユーザが1つのIPから多くの接続を生成してすぐに閉じた場合、nginxはこの要求をバックエンドに渡しますが、クライアント接続がすでに閉じられているため、この接続はlimit_connにカウントされません。

nginxを使用してIPごとのバックエンドサーバへの同時接続数を制限できますか?

答えて

3

あなたは 、クライアントが応答を待たずに接続を閉じているかどうかを判定は、プロキシサーバーとの接続を閉じる必要があり

proxy_ignore_client_abort off; 

を設定することもできます。 documentation

から

別の提案は、要求レートを制限するlimit_reqを使用することです。

+0

Nginx開発チームは、 'proxy_ignore_client_abort off'も使用することを提案しています。これまでのところ動作します。 – Anton

0

この機能は、nginxにはまだ用意されていません。 Nginx FAQ

多くのユーザーによるとnginxのは、(通常は1つ)のバックエンドあたりの要求の数を制限するために、ロードバランサ で機能を実装することを要求してきました。 このためのサポートが予定されているが、それはこの機能に対する需要 が

をプロキシされている アプリケーションの一部に不正行為に根ざしていることを、私はそのnginx-limit-upstreamためのいくつかのサードパーティのモジュールを見てきましたが、私は」言及する価値があります一度も試みたことはありません

関連する問題