Hitachi Web Server
KeepAlive接続を有効にするかどうかを指定します。実際にKeepAliveが実行されるのはクライアント側もKeepAliveに対応している場合だけです。KeepAliveはサーバプロセスとクライアントとのコネクションが持続されるので,連続したリクエストのレスポンスが良くなります。反面,サーバプロセスが特定のクライアント専用になるので,Webサーバ全体としてサービス能力が低下することもあります。KeepAliveTimeout,MaxKeepAliveRequestsディレクティブを使用して調整する必要があります。
On:持続型接続(KeepAlive)を有効にします。
Off:持続型接続(KeepAlive)を無効にします。
httpsd.conf
KeepAlive On
〜((0−65535))《15》(単位:秒)
KeepAlive接続時の要求待ち時間を秒単位で指定します。この時間以上経過しても,クライアントから次のリクエストが来ない場合,コネクションを切断します。KeepAliveはサーバプロセスが特定のクライアントに占有されます。あるWebページから次のWebページへ移る場合に必要とする標準的な時間以上は,タイムアウトにしてコネクションを切断し,サーバプロセスをほかのリクエストの処理に当てるようにします。
httpsd.conf
KeepAliveTimeout 15
KeepAlive接続時の要求待ち時間は15秒
使用言語を優先順位の高い順に指定します。コンテントネゴシエーションで,Webブラウザからのリクエストに言語コードの優先順位(Accept-Languageヘッダ)が含まれていない場合に,ここで指定した優先順位が使用されます。ここで指定する言語コードなどについては,AddLanguageディレクティブを参照してください。
httpsd.conf,<VirtualHost>,<Directory>,.htaccess
FileInfoレベル
LanguagePriority ja en fr de
優先順位は日本語,英語,フランス語,ドイツ語の順
LDAPサーバで認証する場合,検索を開始する最上位のDNを指定します。このDNでは,Webサーバからのアクセスを許可する必要があります。
このDNの下に,検索するすべてのユーザエントリとグループエントリが必要です。また,Webサーバにこれらすべてのエントリ,属性へのアクセス権限が必要です。LDAPServerNameディレクティブで複数のLDAPサーバが指定されている場合,LDAPサーバごとにDNを指定してください。また,DNを複数指定する場合,DNごとに"(引用符)で囲みます。DNの指定が一つの場合は引用符で囲む必要はありません。DN中に引用符が含まれる場合は引用符の前に\を付けます。
httpsd.conf,<VirtualHost>,<Directory>
LDAPサーバを利用したユーザ認証に成功しても,LDAPRequireディレクティブのアクセス制御によってアクセスを拒否する場合,WebサーバがWebブラウザに返すステータスコードを指定します。
Authorization:ステータスコード401を返します。
Forbidden:ステータスコード403を返します。
httpsd.conf,<VirtualHost>
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=hitachi 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を応答します。
同一ユーザを複数指定する場合,その中の一つでアクセス権限を与えれば,アクセスできます。
<Directory>,.htaccess
AuthConfigレベル
LDAPRequire (|(cn=hitachi taro)(cn=hitachi hanako))
LDAPRequire (|(&(uid>=99001)(uid<=99029))(&(uid>=99051)(uid<=99059)))
〜《127.0.0.1》
LDAPサーバのホスト名,又はIPアドレスを指定します。複数のLDAPサーバを指定する場合,それぞれのLDAPサーバに対応するポート番号(LDAPServerPortディレクティブ)と検索を開始する最上位のDN(LDAPBaseDNディレクティブ)を指定してください。指定したLDAPサーバ,ポート番号,及びDNの数が一致しないと,LDAPサーバでの認証をしません。エラーログを出力し,Webブラウザにステータスコード500を返します。
ただし,このディレクティブで指定するすべてのLDAPサーバで同じポート番号を使用する場合,ポート番号の指定は簡略化できます。
また,複数のLDAPサーバを指定する場合,優先順位の高い順に指定します。それぞれのリクエストに対しては必ず最初に指定されたLDAPサーバからユーザ認証をします。
デフォルトはローカルホスト(127.0.0.1)です。
なお,ホスト名にIPv6アドレスに対応したホスト名は指定できません。また,IPアドレスにIPv6アドレスは指定できません。
httpsd.conf,<VirtualHost>,<Directory>
LDAPServerName server01 server02 server03 LDAPServerPort 389 LDAPBaseDN "ou=employee, o=hitachi, c=jp" "ou=employee, o=example.com" "o=hitachi, c=jp"
このように指定すると,LDAPサーバ,ポート番号,及びDNの組み合わせは次のようになります。
利用するLDAPサーバの順 | ホスト名 | ポート番号 | 検索を開始するDN |
---|---|---|---|
1 | server01 | 389 | ou=employee,o=hitachi,c=jp |
2 | server02 | 389 | ou=employee,o=example.com |
3 | server03 | 389 | o=hitachi,c=jp |
〜((1−65535))《389》
LDAPサーバのポート番号を指定します。LDAPServerNameディレクティブで複数のLDAPサーバが指定されている場合,LDAPサーバごとにポート番号を指定してください。ただし,LDAPServerNameディレクティブで指定したすべてのLDAPサーバで同じポート番号を使用するときは複数指定する必要はありません。ポート番号を一つ指定するだけで,すべてのLDAPサーバに適用されます。複数のLDAPサーバを指定する場合の指定例はLDAPServerNameディレクティブを参照してください。LDAPサーバの数とポート番号の数が一致しないと,エラーになります。
httpsd.conf,<VirtualHost>,<Directory>
LDAPサーバで認証する場合,認証されたユーザのDNによって識別されるエントリを構成する属性の値を環境変数の値として設定します。属性の値は,LDAPサーバから得られる文字コードで設定します。返送される文字コードについては,使用するLDAPサーバのマニュアルを参照してください。一つの属性に対して複数の値がある場合には,環境変数は設定されません。バイナリオプション(;binary)のある属性は指定できません。そのほかのオプションを持つ属性では,属性の値が文字列でないかぎり正常に設定されません。同じ環境変数を別の属性で定義した場合はエラーとなりませんが,環境変数の値は不定になります。
httpsd.conf,<VirtualHost>,<Directory>,.htaccess
FileInfoレベル
〜((1−86400))《30》(単位:秒)
ユーザ認証後,一つのLDAPRequireディレクティブで指定したフィルタの検索処理の最大待ち時間を秒単位で指定します。次に示すどれかの場合に,ステータスコード500 Internal Server Errorになります。
httpsd.conf,<VirtualHost>,<Directory>
LDAPSetEnvディレクティブで指定した環境変数を無効化します。
httpsd.conf,<VirtualHost>,<Directory>,.htaccess
FileInfoレベル
〜((0−2147483647))《0》(単位:バイト)
HTTP通信によって,Webブラウザが送信してくるリクエストをサーバが受信する場合のオブジェクトボディ(デ ータ)のサイズの上限を指定します。Webブラウザから<FORM METHOD=POST ACTION=...>によるリクエストを送る場合などにオブジェクトボディが用いられます。上限値を設定しない場合は,0を指定してください。
httpsd.conf,<VirtualHost>,<Directory>,.htaccess
〜((0−32767))《100》
HTTP通信によって,Webブラウザが送信してくるリクエストをサーバが受信する場合のHTTPヘッダ数の上限を指定します。リクエストのHTTPヘッダ数は,Webブラウザやリクエストを中継するプロキシなどの仕様で変わります。上限値を設定しない場合は,0を指定してください。
httpsd.conf
〜((0−8190))《8190》(単位:バイト)
HTTP通信によって,Webブラウザが送信してくるリクエストをサーバが受信する場合,一つのHTTPヘッダの,サイズの上限を指定します。リクエストヘッダのサイズはWebブラウザやリクエストを中継するプロキシなどの仕様で変わります。
httpsd.conf
〜((0−8190))《8190》(単位:バイト)
HTTP通信によって,Webブラウザが送信してくるリクエストをサーバが受信する場合のリクエストライン(メソッド,問い合わせ文字列などを含むURI,HTTPバージョン)の長さの上限を指定します。Webブラウザから<FORM METHOD=GET ACTION...>によるリクエストを送る場合などに問い合わせ文字列としてリクエストラインが用いられます。なお,リクエストラインとしてWebブラウザから何バイト送れるかは,Webブラウザやリクエストを中継するプロキシなどの仕様で変わります。
httpsd.conf
リクエストを受け付けるIPアドレス,及びポート番号を指定します。Portディレクティブと異なり,複数指定できます。バーチャルホストを定義する場合に指定します。Listenディレクティブを指定すると,Portディレクティブ,及びBindAddressディレクティブの指定は無視されます。
IPアドレスにはIPv6アドレスも指定できます。IPv6アドレスを指定する場合は,IPv6アドレスを[ ]で囲んでください。ただし,IPアドレスを省略してポート番号だけを指定した場合は,IPv4アドレスを使用したリクエストだけを受け付けます。このため,IPv6アドレスを使用する場合は,必ずListenディレクティブにIPv6アドレスを指定してください。
httpsd.conf
Listen 80 Listen [fec0::123:4567:89ab:cdef]:8080 Listen [::]:80
〜((1−2147483647))《511》
クライアントからの接続要求の最大の待ち行列数を指定します。この指定値はシステムコールlisten( )のバックログ数として設定されます。ただし,指定値の制限値や,実際の待ち行列数の最大値についてはOSによって異なるため,詳細は各OSのlisten( )についてのマニュアルや,各OSのTCP/IP実装の詳細を説明しているドキュメントを参照してください。
httpsd.conf
DSOによって組み込むモジュールが参照するコードがあるオブジェクトファイル,又はライブラリを指定します。ファイル名には,絶対パス,又はServerRootディレクティブの指定値からの相対パスが指定できます。
LoadModuleディレクティブでこのファイルを参照するモジュールを指定する場合,それらがhttpsd.confで使用される前に,このディレクティブを指定する必要があります。
httpsd.conf
Webサーバに動的に組み込むモジュールを指定します。ライブラリファイル名には,絶対パス,又はServerRootディレクティブの指定値からの相対パスが指定できます。
httpsd.conf
LoadModule hws01_module libexec/mod_hws01.so LoadModule hws02_module libexec/mod_hws02.so
モジュールhws01_moduleとモジュールhws02_moduleを組み込みます。
〜<<"%h %l %u %t \"%r\" %>s %b">>
ログのフォーマットにラベル名を定義します。ここで定義したラベル名をCustomLogディレクティブで指定できます。指定できるフォーマットはCustomLogディレクティブを参照してください。なお,フォーマットに%A又は%aを指定した場合,IPv6アドレスも出力できます。また,フォーマットに%h又は%Vを指定した場合,IPv6アドレスに対応したホスト名又はIPv6アドレスも出力できます。
ラベル名を付けない場合は,このディレクティブを複数指定できません。
httpsd.conf,<VirtualHost>
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
エラーログに出力するエラーのレベルを指定します。指定したレベルの上位レベルのログを出力します。ただし,noticeレベルのログはこの指定に関係なく出力されます。また,Hitachi Web Server起動時など,レベル指定の解析終了前に出力されるメッセージは,この指定に関係なく出力される場合があります。
次にエラーレベルを上位順に示します。
レベル | 意味 |
---|---|
emerg | 緊急メッセージ |
alert | 即時処理要求メッセージ |
crit | 致命的な状態のメッセージ |
error | 一般的エラーメッセージ |
warn | 警告レベルメッセージ |
notice | 標準的だが重要なメッセージ |
info | インフォメーションメッセージ,外部モジュールとCGIプログラム実行時のモジュールトレース※ |
debug | デバッグレベルメッセージ,内部モジュールトレース,及びinfo相当のモジュールトレース※ |
注※ モジュールトレースは,エラーログではなくリクエストログに出力するよう設定できます。詳細は,「4.2.2(5) 各トレースの出力先」及び「4.2.6 モジュールトレースの採取」を参照してください。
httpsd.conf,<VirtualHost>
LogLevel info
All Rights Reserved. Copyright (C) 2006, 2007, Hitachi, Ltd.