ホームページ > 記事 > ウェブフロントエンド > nginxの速度制限・接続数制限について詳しく解説
このような状況、異常なサーバートラフィック、過剰な負荷などによく遭遇します。大量のトラフィックの悪意のある攻撃アクセスの場合、帯域幅の無駄やサーバーの負荷が発生し、ビジネスに影響を与えるため、同じ 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 ブラウザのダウンローダーでは制限できない場合があります。それでは、速度を計算してみましょう。
nginx React 静的ページのサンプルチュートリアルの設定
php で Nginx を使用してリバース プロキシを実装する方法
以上がnginxの速度制限・接続数制限について詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。