LinuCレベル3 プラットフォームスペシャリスト 高可用性プラットフォームの構築 問24
高可用性プラットフォームの構築/Webサーバーによる負荷分散ApacheのHTTP持続的接続(HTTP Keep-Alive)に関する設定として、正しいものをすべて選べ。
当サイトのオリジナル問題(LinuCレベル3 プラットフォームスペシャリストの出題範囲「高可用性プラットフォームの構築」に対応。実際の試験問題ではありません)
- AKeepAlive Onにすると、HTTPレスポンスを返した後もTCP接続を維持し、クライアントからの後続リクエストを同じ接続で受け付けられる
- BKeepAliveTimeoutは、クライアントが最初のHTTPリクエストを送るまでの初期接続待機時間であり、この値を超えると新規の接続要求も受け付けなくなる
- CMaxKeepAliveRequestsに0を設定すると、1つの持続接続で処理できるHTTPリクエスト数の上限がなくなり、接続が閉じられるまで無制限にリクエストを処理できる
- DKeepAliveの設定はApacheとバックエンドサーバー間の転送接続にも自動的に適用され、ProxyPassと組み合わせると自動的にバックエンドとの持続接続も確立される
正解:A、C
解説
KeepAlive Onを設定するとHTTP/1.1の持続的接続が有効になり、1本のTCP接続で複数のHTTPリクエストを処理できます。MaxKeepAliveRequestsを0に設定すると1つの持続接続で処理できるリクエスト数の制限がなくなります(デフォルト値は100)。KeepAliveTimeoutはレスポンスを返した後の後続リクエスト待機時間であり、初期接続のタイムアウトはTimeoutディレクティブが担います。KeepAliveはクライアントとApache間の接続のみを制御し、ApacheとバックエンドサーバーとのHTTP接続はmod_proxy側の設定(ProxyTimeout・proxy-nokeepalive等)で別途管理します。
選択肢ごとの解説
- A正しい。KeepAlive Onにすると、HTTP/1.1の持続的接続が有効になり、同一のTCP接続を使って複数のリクエストを連続して処理できます。
- B誤り。KeepAliveTimeoutはHTTPレスポンスを返した後に次のリクエストを待つ時間です。最初のリクエストを受け付けるまでの初期タイムアウトはTimeoutディレクティブが担います。
- C正しい。MaxKeepAliveRequests 0を設定すると、1つの持続接続において処理できるリクエスト数の制限がなくなります。大量のリクエストを処理する接続を長時間維持できます。
- D誤り。KeepAliveの設定はクライアントとApache間の接続のみに影響します。ApacheとバックエンドサーバーとのHTTP接続はmod_proxy側の設定(ProxyTimeout、SetEnv proxy-nokeepalive等)で管理します。