Cosminexus V9 アプリケーションサーバ Cosminexus HTTP Server

[目次][用語][索引][前へ][次へ]

6.2.5 K,Lで始まるディレクティブ

<この項の構成>
(1) KeepAlive {On|Off}
(2) KeepAliveTimeout 時間
(3) LanguagePriority 言語コード 〔言語コード …〕
(4) LDAPBaseDN DN値 〔DN値…〕
(5) LDAPNoEntryStatus {Authorization|Forbidden}
(6) LDAPRequire 〔%DN属性%〕 〔LDAP検索フィルタ〕
(7) LDAPServerName {ホスト名|IPアドレス} 〔{ホスト名|IPアドレス}…〕
(8) LDAPServerPort ポート番号 〔ポート番号…〕
(9) LDAPSetEnv 環境変数 属性
(10) LDAPTimeout 値
(11) LDAPUnsetEnv 環境変数
(12) LimitRequestBody リクエストボディサイズ
(13) LimitRequestFields ヘッダ数
(14) LimitRequestFieldsize ヘッダサイズ
(15) LimitRequestLine リクエストライン長
(16) Listen 〔IPアドレス:〕ポート番号
(17) ListenBacklog バックログ数
(18) LoadFile ファイル名 〔ファイル名 …〕
(19) LoadModule module構造体名 ライブラリファイル名
(20) LogFormat "フォーマット" 〔ラベル名〕
(21) LogLevel {debug|info|notice|warn|error|crit|alert|emerg}

(1) KeepAlive {On|Off}

(a) 内容

KeepAlive接続を有効にするかどうかを指定します。実際にKeepAliveが実行されるのはクライアント側もKeepAliveに対応している場合だけです。KeepAliveはサーバプロセスとクライアントとのコネクションが持続されるので,連続したリクエストのレスポンスが良くなります。反面,サーバプロセスが特定のクライアント専用になるので,Webサーバ全体としてサービス能力が低下することもあります。KeepAliveTimeout,MaxKeepAliveRequestsディレクティブを使用して調整する必要があります。

On:持続型接続(KeepAlive)を有効にします。

Off:持続型接続(KeepAlive)を無効にします。

(b) 記述できる場所

httpsd.conf

(c) 指定例
KeepAlive On

(2) KeepAliveTimeout 時間

〜((0−65535))《15》(単位:秒)

(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) LDAPBaseDN DN値 〔DN値…〕

(a) 内容

LDAPサーバで認証する場合,検索を開始する最上位のDNを指定します。このDNでは,Webサーバからのアクセスを許可する必要があります。

このDNの下に,検索するすべてのユーザエントリとグループエントリが必要です。また,Webサーバにこれらすべてのエントリ,属性へのアクセス権限が必要です。LDAPServerNameディレクティブで複数のLDAPサーバが指定されている場合,LDAPサーバごとにDNを指定してください。また,DNを複数指定する場合,DNごとに"(引用符)で囲みます。DNの指定が一つの場合は引用符で囲む必要はありません。DN中に引用符が含まれる場合は引用符の前に\を付けます。

(b) 注意事項

LDAPサーバを利用したユーザ認証を使用するためにはmod_hws_ldapモジュールの組み込みが必要です。LDAPサーバを利用したユーザ認証については,「4.5.4 ディレクトリサービスを利用したユーザ認証とアクセス制御」を参照してください。

(c) 記述できる場所

httpsd.conf,<VirtualHost>,<Directory>

(5) LDAPNoEntryStatus {Authorization|Forbidden}

(a) 内容

LDAPサーバを利用したユーザ認証に成功しても,LDAPRequireディレクティブのアクセス制御によってアクセスを拒否する場合,WebサーバがWebブラウザに返すステータスコードを指定します。

Authorization:ステータスコード401を返します。

Forbidden:ステータスコード403を返します。

(b) 注意事項

LDAPサーバを利用したユーザ認証を使用するためにはmod_hws_ldapモジュールの組み込みが必要です。LDAPサーバを利用したユーザ認証については,「4.5.4 ディレクトリサービスを利用したユーザ認証とアクセス制御」を参照してください。

(c) 記述できる場所

httpsd.conf,<VirtualHost>

(6) LDAPRequire 〔%DN属性%〕 〔LDAP検索フィルタ〕

(a) 内容

AuthNameディレクティブ,AuthTypeディレクティブおよびRequire valid-userディレクティブと一緒に指定してアクセス制御するユーザの範囲を指定します。

先頭に%で囲んだ文字列がある場合,この文字列をクライアントが入力したユーザ名を識別するDN属性として利用します。%がない場合にはDN属性としてcn(エントリによって定義される人を識別する必須属性)を仮定します。

LDAPBaseDNディレクティブの指定値に,クライアントが入力したユーザ名をDN属性として設定された値と組み合わせることで,ユーザが登録されているDNを求めます。このDNとクライアントが入力したパスワードを使ってLDAPサーバで認証します。

指定したユーザがLDAPサーバで認証され,かつLDAP検索フィルタに当てはまる場合にコンテンツをアクセスできます。フィルタが指定されていない場合には,検索フィルタとして(objectClass=*)が設定されます。

SSLクライアント認証と併用した場合,LDAPサーバへのアクセスは,クライアント証明書内のSubjectフィールドの,CNの値をユーザ名として,パスワードなしの匿名アクセスになります。LDAPサーバを検索した結果,ユーザ名がLDAPサーバに登録されており,かつLDAP検索フィルタに当てはまる場合にコンテンツをアクセスできます。フィルタが指定されていない場合には,検索フィルタとして(objectClass=*)が設定されます。

このディレクティブを指定した場合,そのディレクトリ内に指定されているRequireディレクティブ指定値は無効になりますが,Requireディレクティブの指定は必須です。

検索フィルタは次の形式で定義できます。

(属性 演算子 値)

演算子として次の演算子が使用できます。

表6-7 検索フィルタで使用できる演算子

検索種類 シンボル 説明
Equality = 指定値に設定された属性エントリを含むエントリを返します。
例:cn=sato taro
Substring =<文字列>*<文字列> 指定の部分文字列を含む属性を持ったエントリを返します。
例:cn=hita*,cn=*hanako,cn=*hi*,cn=h*hanako
Greater than or equal to >= 指定値以上の属性を含むエントリを返します。
例:employeenumber>=100
Less than or equal to <= 指定値以下の属性を含むエントリを返します。
例:employeenumber<=100
Presence =* 指定の属性を含むエントリを返します。
例:cn=*,telephonenumber=*,manager=*

さらに,これらの検索フィルタを複数組み合わせたフィルタを作成できます。

(演算子(検索フィルタ)(検索フィルタ)…)

この場合,次の演算子が使用できます。

認証するユーザが一つの属性に対して複数の属性エントリを持っている場合,一つの属性エントリが演算に一致する場合にアクセスを許可します。

表6-8 複数の検索フィルタ間で使用できる演算子

演算子 シンボル 説明
And & すべてのフィルタが真のエントリを返します。
例:(&(filter)(filter)(filter)…)
Or | 最低一つの指定フィルタが真のエントリを返します。
例:(|(filter)(filter)(filter)…)
Not ! 指定したフィルタが真でないエントリを返します。
例:(!(filter))

注 Not演算子の場合,フィルタを複数指定できません。


認証に失敗した場合,ステータスコード401 Authorization Requiredを応答します。フィルタ条件に一致しない場合,LDAPNoEntryStatusディレクティブに従ったステータスコード(デフォルトでは401 Authorization Required)を応答します。また,フィルタ形式の文法に誤りがある場合,ステータスコード500 Internal Server Errorを応答します。

同一ユーザを複数指定する場合,その中の一つでアクセス権限を与えれば,アクセスできます。

(b) 注意事項

LDAPサーバを利用したユーザ認証を使用するためにはmod_hws_ldapモジュールの組み込みが必要です。LDAPサーバを利用したユーザ認証については,「4.5.4 ディレクトリサービスを利用したユーザ認証とアクセス制御」を参照してください。

(c) 記述できる場所

<Directory>,.htaccess

(d) 上書き許可

AuthConfigレベル

(e) 指定例

(7) LDAPServerName {ホスト名|IPアドレス} 〔{ホスト名|IPアドレス}…〕

〜《127.0.0.1》

(a) 内容

LDAPサーバのホスト名またはIPアドレスを指定します。複数のLDAPサーバを指定する場合,それぞれのLDAPサーバに対応するポート番号(LDAPServerPortディレクティブ)と検索を開始する最上位のDN(LDAPBaseDNディレクティブ)を指定してください。指定したLDAPサーバ,ポート番号およびDNの数が一致しないと,LDAPサーバでの認証をしません。エラーログを出力し,Webブラウザにステータスコード500を返します。

ただし,このディレクティブで指定するすべてのLDAPサーバで同じポート番号を使用する場合,ポート番号の指定は簡略化できます。

また,複数のLDAPサーバを指定する場合,優先順位の高い順に指定します。それぞれのリクエストに対しては必ず最初に指定されたLDAPサーバからユーザ認証をします。

デフォルトはローカルホスト(127.0.0.1)です。

なお,ホスト名にIPv6アドレスに対応したホスト名は指定できません。また,IPアドレスにIPv6アドレスは指定できません。

(b) 注意事項

LDAPサーバを利用したユーザ認証を使用するためにはmod_hws_ldapモジュールの組み込みが必要です。LDAPサーバを利用したユーザ認証については,「4.5.4 ディレクトリサービスを利用したユーザ認証とアクセス制御」を参照してください。

(c) 記述できる場所

httpsd.conf,<VirtualHost>,<Directory>

(d) 指定例
LDAPServerName server01 server02 server03
LDAPServerPort 389
LDAPBaseDN "ou=employee, o=xxx, c=jp" "ou=employee, o=example.com" "o=xxx, c=jp"

このように指定すると,LDAPサーバ,ポート番号およびDNの組み合わせは次のようになります。

利用するLDAPサーバの順 ホスト名 ポート番号 検索を開始するDN
1 server01 389 ou=employee,o=xxx,c=jp
2 server02 389 ou=employee,o=example.com
3 server03 389 o=xxx,c=jp

(8) LDAPServerPort ポート番号 〔ポート番号…〕

〜((1−65535))《389》

(a) 内容

LDAPサーバのポート番号を指定します。LDAPServerNameディレクティブで複数のLDAPサーバが指定されている場合,LDAPサーバごとにポート番号を指定してください。ただし,LDAPServerNameディレクティブで指定したすべてのLDAPサーバで同じポート番号を使用するときは複数指定する必要はありません。ポート番号を一つ指定するだけで,すべてのLDAPサーバに適用されます。複数のLDAPサーバを指定する場合の指定例はLDAPServerNameディレクティブを参照してください。LDAPサーバの数とポート番号の数が一致しないと,エラーになります。

(b) 注意事項

LDAPサーバを利用したユーザ認証を使用するためにはmod_hws_ldapモジュールの組み込みが必要です。LDAPサーバを利用したユーザ認証については,「4.5.4 ディレクトリサービスを利用したユーザ認証とアクセス制御」を参照してください。

(c) 記述できる場所

httpsd.conf,<VirtualHost>,<Directory>

(9) LDAPSetEnv 環境変数 属性

(a) 内容

LDAPサーバで認証する場合,認証されたユーザのDNによって識別されるエントリを構成する属性の値を環境変数の値として設定します。属性の値は,LDAPサーバから得られる文字コードで設定します。返送される文字コードについては,使用するLDAPサーバのマニュアルを参照してください。一つの属性に対して複数の値がある場合には,環境変数は設定されません。バイナリオプション(;binary)のある属性は指定できません。そのほかのオプションを持つ属性では,属性の値が文字列でないかぎり正常に設定されません。同じ環境変数を別の属性で定義した場合はエラーとなりませんが,環境変数の値は不定になります。

(b) 注意事項

LDAPサーバを利用したユーザ認証を使用するためにはmod_hws_ldapモジュールの組み込みが必要です。LDAPサーバを利用したユーザ認証については,「4.5.4 ディレクトリサービスを利用したユーザ認証とアクセス制御」を参照してください。

(c) 記述できる場所

httpsd.conf,<VirtualHost>,<Directory>,.htaccess

(d) 上書き許可

FileInfoレベル

(10) LDAPTimeout 値

〜((1−86400))《30》(単位:秒)

(a) 内容

ユーザ認証後,一つのLDAPRequireディレクティブで指定したフィルタの検索処理の最大待ち時間を秒単位で指定します。次に示すどれかの場合に,ステータスコード500 Internal Server Errorになります。

(b) 注意事項

LDAPサーバを利用したユーザ認証を使用するためにはmod_hws_ldapモジュールの組み込みが必要です。LDAPサーバを利用したユーザ認証については,「4.5.4 ディレクトリサービスを利用したユーザ認証とアクセス制御」を参照してください。

(c) 記述できる場所

httpsd.conf,<VirtualHost>,<Directory>

(11) LDAPUnsetEnv 環境変数

(a) 内容

LDAPSetEnvディレクティブで指定した環境変数を無効化します。

(b) 注意事項

LDAPサーバを利用したユーザ認証を使用するためにはmod_hws_ldapモジュールの組み込みが必要です。LDAPサーバを利用したユーザ認証については,「4.5.4 ディレクトリサービスを利用したユーザ認証とアクセス制御」を参照してください。

(c) 記述できる場所

httpsd.conf,<VirtualHost>,<Directory>,.htaccess

(d) 上書き許可

FileInfoレベル

(12) LimitRequestBody リクエストボディサイズ

〜((0−2147483647))《0》(単位:バイト)

(a) 内容

HTTP通信によって,Webブラウザが送信してくるリクエストをサーバが受信する場合のオブジェクトボディ(デ ータ)のサイズの上限を指定します。Webブラウザから<FORM METHOD=POST ACTION=...>によるリクエストを送る場合などにオブジェクトボディが用いられます。上限値を設定しない場合は,0を指定してください。

(b) 記述できる場所

httpsd.conf,<VirtualHost>,<Directory>,.htaccess

(13) LimitRequestFields ヘッダ数

〜((0−32767))《100》

(a) 内容

HTTP通信によって,Webブラウザが送信してくるリクエストをサーバが受信する場合のHTTPヘッダ数の上限を指定します。リクエストのHTTPヘッダ数は,Webブラウザやリクエストを中継するプロキシなどの仕様で変わります。上限値を設定しない場合は,0を指定してください。

(b) 記述できる場所

httpsd.conf

(14) LimitRequestFieldsize ヘッダサイズ

〜((0−8190))《8190》(単位:バイト)

(a) 内容

HTTP通信によって,Webブラウザが送信してくるリクエストをサーバが受信する場合,一つのHTTPヘッダの,サイズの上限を指定します。リクエストヘッダのサイズはWebブラウザやリクエストを中継するプロキシなどの仕様で変わります。

(b) 記述できる場所

httpsd.conf

(15) LimitRequestLine リクエストライン長

〜((0−8190))《8190》(単位:バイト)

(a) 内容

HTTP通信によって,Webブラウザが送信してくるリクエストをサーバが受信する場合のリクエストライン(メソッド,問い合わせ文字列などを含むURI,HTTPバージョン)の長さの上限を指定します。Webブラウザから<FORM METHOD=GET ACTION...>によるリクエストを送る場合などに問い合わせ文字列としてリクエストラインが用いられます。なお,リクエストラインとしてWebブラウザから何バイト送れるかは,Webブラウザやリクエストを中継するプロキシなどの仕様で変わります。

(b) 記述できる場所

httpsd.conf

(16) 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

(17) ListenBacklog バックログ数

〜((1−2147483647))《511》

(a) 内容

クライアントからの接続要求の最大の待ち行列数を指定します。この指定値はシステムコールlisten( )のバックログ数として設定されます。ただし,指定値の制限値や,実際の待ち行列数の最大値についてはOSによって異なるため,詳細は各OSのlisten( )についてのマニュアルや,各OSのTCP/IP実装の詳細を説明しているドキュメントを参照してください。

(b) 記述できる場所

httpsd.conf

(18) LoadFile ファイル名 〔ファイル名 …〕

(a) 内容

DSOによって組み込むモジュールが参照するコードがあるオブジェクトファイルまたはライブラリを指定します。ファイル名には,絶対パスまたはServerRootディレクティブの指定値からの相対パスが指定できます。

LoadModuleディレクティブでこのファイルを参照するモジュールを指定する場合,それらがhttpsd.confで使用される前に,このディレクティブを指定する必要があります。

(b) 記述できる場所

httpsd.conf

(19) LoadModule module構造体名 ライブラリファイル名

(a) 内容

Webサーバに動的に組み込むモジュールを指定します。ライブラリファイル名には,絶対パスまたはServerRootディレクティブの指定値からの相対パスが指定できます。

(b) 記述できる場所

httpsd.conf

(c) 指定例
LoadModule hws01_module libexec/mod_hws01.so
LoadModule hws02_module libexec/mod_hws02.so

モジュールhws01_moduleとモジュールhws02_moduleを組み込みます。

(20) 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

(21) LogLevel {debug|info|notice|warn|error|crit|alert|emerg}

(a) 内容

エラーログに出力するエラーのレベルを指定します。指定したレベルの上位レベルのログを出力します。ただし,noticeレベルのログはこの指定に関係なく出力されます。また,HTTP Server起動時など,レベル指定の解析終了前に出力されるメッセージは,この指定に関係なく出力される場合があります。

次にエラーレベルを上位順に示します。

レベル 意味
emerg 緊急メッセージ
alert 即時処理要求メッセージ
crit 致命的な状態のメッセージ
error 一般的エラーメッセージ
warn 警告レベルメッセージ
notice 標準的だが重要なメッセージ
info インフォメーションメッセージ,外部モジュールとCGIプログラム実行時のモジュールトレース
debug デバッグレベルメッセージ,内部モジュールトレースおよびinfo相当のモジュールトレース

注※ モジュールトレースは,エラーログではなくリクエストログに出力するよう設定できます。詳細は,「4.2.2(5) 各トレースの出力先」および「4.2.6 モジュールトレースの採取」を参照してください。


(b) 記述できる場所

httpsd.conf,<VirtualHost>

(c) 指定例
LogLevel info