Webアプリケーションの人気と開発により、ユーザーエクスペリエンスを確保し、サービスの安定性を確保するために、Webサービスへの同時接続の数を制限することが特に重要です。優れたパフォーマンスWebサーバーおよびリバースプロキシサーバーとして、Nginxはこの要件を達成するのに役立つさまざまな構成オプションを提供します。この記事では、nginxプロキシサーバーを構成して、同時接続の数をWebサービスに制限し、特定のコードの例を提供する方法を紹介します。
まず、nginxをインストールする必要があります。 ubuntuオペレーティングシステムにnginxをインストールするための例コマンドを次に示します。
<span class="fun">$ sudo aptアップデート</span>
<span class="fun">$ sudo apt install nginx</span>
インストールが完了したら、NGINX構成ファイルを開いて編集する必要があります。
<span class="fun">$ sudo nano /etc/nginx/nginx.conf</span>
次に、HTTPブロックに次の構成を追加します。
http {
...
# 同時接続の数を制限します100
limit_conn_zone $binary_remote_addr zone=concurrent:10m;
server {
...
# 同時接続の数を制限します10
limit_conn concurrent 10;
}
}
上記の構成では、 `limit_conn_zone`を使用して共有メモリ領域(サイズ10MB)を定義して、クライアントごとの並行接続の数を保存します。 `limit_conn`は、たとえば10に設定されている場合、各サーバーブロックの並行接続の最大数を定義するために使用されます。
構成が完了したら、構成を有効にするためにNGINXサービスを再起動する必要があります。
<span class="fun">$ sudo systemctl restart nginx</span>
構成が有効であることを確認するには、ストレステストに「ab」(apacheベンチマーク)コマンドを使用できます。 `ab`コマンドを使用した例は次のとおりです。
<span class="fun">$ ab -c 100 -n 1000 http:// localhost/</span>
上記の例では、 `-c 100`は同時リクエストの数が100であり、` -n 1000`はリクエストの総数が1000であることを意味します。構成が正しい場合、次の出力が表示されます。
Concurrency Level: 100
Time taken for tests: 10.000 seconds
Complete requests: 1000
Failed requests: 0
Total transferred: 158000 bytes
...
nginxプロキシサーバーの同時接続制限を合理的に構成することにより、過度の接続によって引き起こされるパフォーマンスの問題は、Webサービスによって効果的に回避できます。この記事の構成例は、ユーザーがこの機能を簡単に実装するのに役立ちます。もちろん、実際のニーズに応じて、これらの構成をさらに調整する必要がある場合があります。この記事があなたに役立つことを願っています!