6.2.5 K,Lで始まるディレクティブ
(1) KeepAlive {On|Off}
(a) 内容
KeepAlive接続を有効にするかどうかを指定します。実際にKeepAliveが実行されるのはクライアント側もKeepAliveに対応している場合だけです。KeepAliveはサーバプロセスとクライアントとのコネクションが持続されるので,連続したリクエストのレスポンスが良くなります。反面,サーバプロセスが特定のクライアント専用になるので,Webサーバ全体としてサービス能力が低下することもあります。KeepAliveTimeout,MaxKeepAliveRequestsディレクティブを使用して調整する必要があります。なお,この指定は,リバースプロキシ機能使用時のバックエンドサーバとの接続には影響しません。
On:持続型接続(KeepAlive)を有効にします。
Off:持続型接続(KeepAlive)を無効にします。
(b) 注意事項
HTTP/2通信の場合,KeepAliveディレクティブにOffを指定しても,コネクションが持続します。
コネクションが持続する時間は,KeepAliveTimeoutディレクティブ値に従います。
(c) 記述できる場所
httpsd.conf
(d) 指定例
KeepAlive On
(2) KeepAliveTimeout 時間
〜((0−65535))《5》(単位:秒)
(a) 内容
KeepAlive接続時の要求待ち時間を秒単位で指定します。この時間以上経過しても,クライアントから次のリクエストが来ない場合,コネクションを切断します。KeepAliveはサーバプロセスが特定のクライアントに占有されます。あるWebページから次のWebページへ移る場合に必要とする標準的な時間以上は,タイムアウトにしてコネクションを切断し,サーバプロセスをほかのリクエストの処理に当てるようにします。時間に0を指定した場合は,KeepAlive接続が無効になります。なお,この指定は,リバースプロキシ機能使用時のバックエンドサーバとの接続には影響しません。
(b) 記述できる場所
httpsd.conf
(c) 指定例
KeepAliveTimeout 15
KeepAlive接続時の要求待ち時間は15秒
(3) LanguagePriority 言語コード 〔言語コード …〕
(a) 内容
使用言語を優先順位の高い順に指定します。コンテントネゴシエーションで,Webブラウザからのリクエストに言語コードの優先順位(Accept-Languageヘッダ)が含まれていない場合に,ここで指定した優先順位が使用されます。ここで指定する言語コードなどについては,AddLanguageディレクティブを参照してください。
(b) 記述できる場所
httpsd.conf,<VirtualHost>,<Directory>,.htaccess
(c) 上書き許可
FileInfoレベル
(d) 指定例
LanguagePriority ja en fr de
優先順位は日本語,英語,フランス語,ドイツ語の順
(4) LimitRequestBody リクエストボディサイズ
〜((0−2147483647))《0》(単位:バイト)
(a) 内容
HTTP通信によって,Webブラウザが送信してくるリクエストをサーバが受信する場合のオブジェクトボディ(デ ータ)のサイズの上限を指定します。Webブラウザから<FORM METHOD=POST ACTION=...>によるリクエストを送る場合などにオブジェクトボディが用いられます。上限値を設定しない場合は,0を指定してください。
リクエストデータ内のリクエストボディサイズが上限値を超えた場合,クライアントにステータスコード413を返します。
(b) 注意事項
HTTP/2通信でリクエストボディサイズを制限する場合は,H2SerializeHeadersディレクティブでOnを指定する必要があります。H2SerializeHeadersディレクティブがOffのときは,このディレクティブの指定は無効になります。
(c) 記述できる場所
httpsd.conf,<VirtualHost>,<Directory>,.htaccess
(5) LimitRequestFields ヘッダ数
〜((0−32767))《100》
(a) 内容
HTTP通信によって,Webブラウザが送信してくるリクエストをサーバが受信する場合のHTTPヘッダ数の上限を指定します。リクエストのHTTPヘッダ数は,Webブラウザやリクエストを中継するプロキシなどの仕様で変わります。上限値を設定しない場合は,0を指定してください。
このディレクティブ指定値を,バーチャルホストに対するリクエストにも適用するためには,<VirtualHost>ブロックよりも前に指定する必要があります。
リクエストデータ内のHTTPヘッダ数が上限値を越えた場合,クライアントにステータスコード400を返します。
(b) 注意事項
HTTP/2通信の場合,リクエストに含まれる:method,:scheme,:authority,:pathの疑似ヘッダを除いたヘッダ数と比較します。また,同じヘッダが複数ある場合は一つのヘッダとして計算します。
(c) 記述できる場所
httpsd.conf
(6) LimitRequestFieldsize ヘッダサイズ
〜((0−8190))《8190》(単位:バイト)
(a) 内容
HTTP通信によって,Webブラウザが送信してくるリクエストをサーバが受信する場合,一つのHTTPヘッダの,サイズの上限を指定します。リクエストヘッダのサイズはWebブラウザやリクエストを中継するプロキシなどの仕様で変わります。
このディレクティブ指定値を,バーチャルホストに対するリクエストにも適用するためには,<VirtualHost>ブロックよりも前に指定する必要があります。
リクエストデータ内の一つのHTTPヘッダのサイズが上限値を越えた場合,クライアントにステータスコード400を返します。
(b) 注意事項
HTTP/2通信の場合,同じヘッダが存在すると,ヘッダ値の間に“, ”を挿入して一つにマージされます(ただし,Cookieヘッダフィールドの場合は“; ”を挿入)。マージされた場合はマージ後のサイズと比較します。
(c) 記述できる場所
httpsd.conf
(7) LimitRequestLine リクエストライン長
〜((0−2147483647))《8190》(単位:バイト)
(a) 内容
HTTP通信によって,Webブラウザが送信してくるリクエストをサーバが受信する場合のリクエストライン(メソッド,問い合わせ文字列などを含むURI,HTTPバージョン)の長さの上限を指定します。Webブラウザから<FORM METHOD=GET ACTION...>によるリクエストを送る場合などに問い合わせ文字列としてリクエストラインが用いられます。なお,リクエストラインとしてWebブラウザから何バイト送れるかは,Webブラウザやリクエストを中継するプロキシなどの仕様で変わります。
このディレクティブ指定値を,バーチャルホストに対するリクエストにも適用するためには,<VirtualHost>ブロックよりも前に指定する必要があります。
リクエストデータ内のリクエストライン長が上限値を越えた場合,クライアントにステータスコード414を返すか,またはHTTP/2通信を終了します。
(b) 注意事項
リクエストライン長に大きな値を指定した場合,リクエスト処理中に大量のメモリ領域を使用するおそれがあるため,このディレクティブに必要以上に大きな値を指定しないでください。
HTTP/2通信の場合,:method, :scheme, :authority, :pathの疑似ヘッダフィールドの値の長さと比較します。:method, :authorityの疑似ヘッダフィールドの値の長さが上限値を超えた場合は,HTTP/2通信を終了します。
(c) 記述できる場所
httpsd.conf
(8) Listen 〔IPアドレス:〕ポート番号
(a) 内容
リクエストを受け付けるIPアドレスおよびポート番号を指定します。Portディレクティブと異なり,複数指定できます。Listenディレクティブを指定すると,PortディレクティブおよびBindAddressディレクティブの指定は無視されます。
IPアドレスにはIPv6アドレスも指定できます。IPv6アドレスを指定する場合は,IPv6アドレスを[ ]で囲んでください。ただし,IPアドレスを省略してポート番号だけを指定した場合は,IPv4アドレスを使用したリクエストだけを受け付けます。このため,IPv6アドレスを使用する場合は,必ずListenディレクティブにIPv6アドレスを指定してください。
ListenディレクティブのIPアドレスを変更してサーバを再起動する場合,サーバをいったん停止後,起動してください。コマンドなどで再起動を選択すると,サーバの起動に失敗する場合があります。
(b) 記述できる場所
httpsd.conf
(c) 指定例
Listen 80 Listen [2001::123:4567:89ab:cdef]:8080 Listen [::]:80
(9) ListenBacklog バックログ数
〜((1−2147483647))《511》
(a) 内容
クライアントからの接続要求の最大の待ち行列数を指定します。この指定値はシステムコールlisten( )のバックログ数として設定されます。ただし,指定値の制限値や,実際の待ち行列数の最大値についてはOSによって異なるため,詳細は各OSのlisten( )についてのマニュアルや,各OSのTCP/IP実装の詳細を説明しているドキュメントを参照してください。
(b) 記述できる場所
httpsd.conf
(10) LoadFile ファイル名 〔ファイル名 …〕
(a) 内容
DSOによって組み込むモジュールが参照するコードがあるオブジェクトファイルまたはライブラリを指定します。ファイル名には,絶対パスまたはServerRootディレクティブの指定値からの相対パスが指定できます。
LoadModuleディレクティブでこのファイルを参照するモジュールを指定する場合,それらがhttpsd.confで使用される前に,このディレクティブを指定する必要があります。
(b) 記述できる場所
httpsd.conf
(11) LoadModule module構造体名 ライブラリファイル名
(a) 内容
Webサーバに動的に組み込むモジュールを指定します。ライブラリファイル名には,絶対パスまたはServerRootディレクティブの指定値からの相対パスが指定できます。
UNIX版の場合,prefork MPMモジュールまたはworker MPMモジュールのどちらか一つを組み込む必要があります。どちらの指定もない場合はprefork MPMモジュールを組み込みます。
(b) 記述できる場所
httpsd.conf
(c) 指定例
- prefork MPMモジュールを組み込む場合
LoadModule mpm_prefork_module libexec/mod_mpm_prefork.so
- worker MPMモジュールを組み込む場合
LoadModule mpm_worker_module libexec/mod_mpm_worker.so
(12) LogFormat "フォーマット" 〔ラベル名〕
〜<<"%h %l %u %t \"%r\" %>s %b">>
(a) 内容
ログのフォーマットにラベル名を定義します。ここで定義したラベル名をCustomLogディレクティブで指定できます。指定できるフォーマットはCustomLogディレクティブを参照してください。なお,フォーマットに%Aまたは%aを指定した場合,IPv6アドレスも出力できます。また,フォーマットに%hまたは%Vを指定した場合,IPv6アドレスに対応したホスト名またはIPv6アドレスも出力できます。
ラベル名を付けない場合は,このディレクティブを複数指定できません。
(b) 記述できる場所
httpsd.conf,<VirtualHost>
(c) 指定例
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %b" common LogFormat "%{Referer}i -> %U" referer LogFormat "%{User-agent}i" agent
(13) LogLevel {debug|info|notice|warn|error|crit|alert|emerg}
(a) 内容
エラーログに出力するエラーのレベルを指定します。指定したレベルの上位レベルのログを出力します。ただし,noticeレベルのログはこの指定に関係なく出力されます。また,HTTP Server起動時など,レベル指定の解析終了前に出力されるメッセージは,この指定に関係なく出力される場合があります。
次にエラーレベルを上位順に示します。
レベル |
意味 |
---|---|
emerg |
緊急メッセージ |
alert |
即時処理要求メッセージ |
crit |
致命的な状態のメッセージ |
error |
一般的エラーメッセージ |
warn |
警告レベルメッセージ |
notice |
標準的だが重要なメッセージ |
info |
インフォメーションメッセージ,外部モジュールとCGIプログラム実行時のモジュールトレース※ |
debug |
デバッグレベルメッセージ,内部モジュールトレースおよびinfo相当のモジュールトレース※ |
(b) 記述できる場所
httpsd.conf,<VirtualHost>
(c) 指定例
LogLevel info