シナリオ:
会社 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 です。
このようにして、99 人のリクエスト ステータスは 503 になります。他の人がダウンロードしたい場合は、手動で待つ必要があります (nginx は、ユーザー a がダウンロードを完了したことをユーザーに通知しません。次はあなたの番です)ユーザー b がダウンロードできるようにします)。これにより、ユーザー エクスペリエンスが非常に低下します。しかし、利点も明らかであり、帯域幅はすぐに低下します。
接続数を非常に少ない数に制限してトラブルを引き起こそうとしているのではないかと疑問に思う人もいるかもしれません。いいえ、絶対に違います。最初の 100 人が Web サイトのリソースを同時にダウンロードする可能性はどのくらいですか?統計をとったわけではありませんが、その可能性は非常に低いです。さらに、フロントエンド ページとダウンロード リソースは同じドメイン名を共有しないため、フロントエンド ページへのアクセスは影響を受けません。
大量の接続を使用しているのは誰ですか?
ダウンロード ツール カテゴリ (Thunder) の 2 つのカテゴリに分かれています。
さまざまな収集プログラム。
複数のダウンロード タスクを同時に実行します。
シャオミンは楽しそうにテレビを見ていました。左側の画面をちらっと見て、ストローを握りました。帯域幅が再びいっぱいになりました。さあ、速度を制限してください。
limit_conn_zone $binary_remote_addr zone=perip:1m; server { --- limit_rate 1024k; --- }
シャオミンがやりました速度制限については、わかりました、誰が速度制限されているか教えてください。もちろん、それはブラウザのダウンロードユーザーです。360 ブラウザのダウンローダーは制限できない可能性があります。わかりました、計算してみましょうスピード。
ブラウザ: 2014k
ダウンローダー: 1024 * 15 (最大接続数) *vip
コレクター: 1024 *接続数
したがって、次の結論が得られます:
帯域幅が制限されているか、同じ IP からの同時ダウンロードの状況が非常に小さいか、または予測可能なビジネスであるため、次のことを試してください。接続数制限が少なくなります。
逆に、制限しないでください。単一接続の帯域幅を減らすだけです。ブラウザに付属のダウンローダーを使用してダウンロードできる人がいるか知りたいですか?
注: この記事では、さまざまなビジネスにおける nginx 速度制限モジュールの速度制限についてのみ説明します
イースターエッグ: 接続数を制限すると、 1 Thunder では高速ダウンロードができません。
以上がnginxの速度制限で接続数を制限する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。