過去問ドリル

LinuCレベル3 プラットフォームスペシャリスト 高可用性プラットフォームの構築 問18

高可用性プラットフォームの構築/Webサーバーによる負荷分散

nginxをリバースプロキシとして使い、eventsブロックでworker_connectionsを設定している。worker_connectionsの説明として適切なものはどれか。

当サイトのオリジナル問題(LinuCレベル3 プラットフォームスペシャリストの出題範囲「高可用性プラットフォームの構築」に対応。実際の試験問題ではありません)

正解:B

解説

worker_connectionsは、1つのワーカープロセスが同時に開ける接続数の上限です。nginxの公式ドキュメントにあるとおり、この数にはクライアントとの接続だけでなく、プロキシ先のサーバーとの接続なども含まれます。そのためリバースプロキシでは、1つのクライアントのリクエストを中継するのに2つの接続を使うことがあり、同時に扱えるクライアント数はおおむねworker_processes×worker_connectionsの半分程度になります。実際に開けるファイルディスクリプタ数の上限(worker_rlimit_nofile等)とも合わせて調整します。

選択肢ごとの解説

  • A誤り。ワーカープロセスの数を指定するのはworker_processesで、autoにするとCPUコアの数に合わせて決まります。
  • B正しい。ワーカー1つあたりの同時接続数の上限で、プロキシ先との接続も数に含まれます。
  • C誤り。1つのキープアライブ接続で処理するリクエスト数の上限はkeepalive_requestsで指定します。
  • D誤り。worker_connectionsはワーカー1つあたりの上限で、ワーカーの数を増やせば全体で扱える接続数も増えます。
LinuCレベル3 プラットフォームスペシャリストの問題を演習モードで解く