ホームページ  >  記事  >  ウェブフロントエンド  >  nginxの速度制限・接続数制限について詳しく解説

nginxの速度制限・接続数制限について詳しく解説

小云云
小云云オリジナル
2018-01-11 13:11:112122ブラウズ

このような状況、異常なサーバートラフィック、過剰な負荷などによく遭遇します。大量のトラフィックの悪意のある攻撃アクセスの場合、帯域幅の無駄やサーバーの負荷が発生し、ビジネスに影響を与えるため、同じ IP に対する接続数や同時実行数を制限することがよく考えられます。 nginx の組み込みモジュールの速度制限の使用方法については詳しく説明しません。今日は、接続数と単一接続数の速度制限について説明します。多くを語る必要はありません。詳細な紹介を見てみましょう。

シナリオ:

会社 A には 100 人の従業員がいて、会社 A のパブリック IP は 1 つだけです。会社 A の 100 人が同時に Web サイトのファイルをダウンロードしていると仮定します。

ただし、接続制限は次のように構成されています:

limit_conn_zone $binary_remote_addr zone=perip:1m;
server {
 ---
 limit_conn perip 1;
 limit_rate 1024k;
 ---
}

単一接続が許可され、単一接続の最大帯域幅は 1M です。

このようにすると、リクエストステータスが 503 の人が 99 人いることになります。他の人がダウンロードしたい場合は、手動で待つ必要があります (nginx は、ユーザー A がダウンロードを完了したことをユーザーに通知しません。ユーザー B がダウンロードする番です)ダウンロード)。これにより、ユーザー エクスペリエンスが非常に低下します。しかし、利点も明らかであり、帯域幅はすぐに低下します。

接続数を非常に少ない数に制限してトラブルを起こそうとしているのではないかと疑問に思う人もいるかもしれません。いいえ、絶対に違います。最初の 100 人が Web サイトのリソースを同時にダウンロードする可能性はどのくらいですか?統計をとったことはありませんが、その可能性は非常に低いです。さらに、フロントエンド ページとダウンロード リソースは同じドメイン名を共有しないため、フロントエンド ページへのアクセスは影響を受けません。
多くの接続を使用しているのは誰ですか? 2 つのカテゴリに分かれています:

  • ダウンロード ツール (Thunder)。

  • さまざまな収集プログラム。

  • 複数のダウンロードタスクを同時に実行します。

シャオミンは、左側の画面をちらりと見て、帯域幅が再びいっぱいになりました

limit_conn_zone $binary_remote_addr zone=perip:1m;
server {
 ---
 limit_rate 1024k;
 ---
}
シャオミンは、速度を制限するために次のことを行いました。誰がブロックされているかを説明します。もちろん、ブラウザ ダウンロード ユーザーの場合は速度が制限されます。360 ブラウザのダウンローダーでは制限できない場合があります。それでは、速度を計算してみましょう。


ブラウザ: 2014K


ダウンローダー: 1024 * 15 (最大接続数) *VIP


コレクター: 1024 *接続数

したがって、次の結論が得られます:

帯域幅は制限されており、同じ IPダウンロード状況が非常に少ない場合、または予測可能なビジネスである場合は、接続数をできるだけ少なく制限するようにしてください。


逆に、制限しないでください。単一接続の帯域幅を減らすだけです。ブラウザに付属のダウンローダーを使ってダウンロードできる人はいるでしょうか?


注: この記事では、さまざまなビジネスの下での nginx 速度制限モジュールの速度制限についてのみ説明します

イースターエッグ: 接続数が 1 に制限されている場合、Thunder が高速でダウンロードできないことが時々わかります。

関連する推奨事項:

nginx React 静的ページのサンプルチュートリアルの設定

Apache と Nginx の選択方法

php で Nginx を使用してリバース プロキシを実装する方法

以上がnginxの速度制限・接続数制限について詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。