LinuCレベル3 プラットフォームスペシャリスト 高可用性プラットフォームの構築 問7
高可用性プラットフォームの構築/Webサーバーによる負荷分散nginxのupstreamブロック内で設定するkeepaliveディレクティブの目的として適切なものはどれか。
当サイトのオリジナル問題(LinuCレベル3 プラットフォームスペシャリストの出題範囲「高可用性プラットフォームの構築」に対応。実際の試験問題ではありません)
- Aクライアントとnginxの間の接続を、1リクエストごとに必ず切断するようにする
- Bバックエンドが応答しなくなった場合に、何秒待ってから異常と判断するかを設定する
- Cupstreamに登録した各サーバーへ定期的に空のリクエストを送り、生存を確認し続ける仕組みである
- Dnginxとバックエンド間の接続を一定数保持して再利用し、接続確立のオーバーヘッドを減らす
正解:D
解説
nginxのupstreamブロック内のkeepaliveディレクティブは、nginxとバックエンドサーバーとの間で一定数のコネクションを保持し再利用できるようにする設定です。リクエストのたびにTCP接続を新規に確立するオーバーヘッドを削減し、バックエンドとの通信効率を向上させます。
選択肢ごとの解説
- A誤り。クライアント側の接続維持はkeepalive_timeout等で扱うもので、upstream内のkeepaliveとは別です。
- B誤り。異常と判断するまでの時間はfail_timeout等で設定します。
- C誤り。定期的なヘルスチェックを行うディレクティブではありません。
- D正しい。upstream内のkeepaliveは、バックエンドとの接続をプールして再利用するための設定です。