前へ     目次     索引     DocHome     次へ     
iPlanet Web Server, Enterprise Edition NSAPI プログラマーズガイド



第 8 章   仮想サーバの構成ファイル


server.xml ファイルは、仮想サーバを構成します。マスターファイル server.dtd は、server.xml ファイルの書式と内容を決定します。この章では、これら 2 つのファイルについて説明します。この章は、次の節で構成されています。



server.dtd ファイル

server.dtd ファイルは、server.xml ファイルに含めることができる要素と、それらの要素に設定できる属性を定義します。server.dtd ファイルは、server_root/server_id/config ディレクトリにあります。



  server.dtd ファイルは編集しないでください。このファイルの内容は、iPlanet Web Server のバージョンが更新されたときだけ変更されます。

 



たとえば、次のコードは、VSCLASS (または仮想サーバクラス) 要素を定義しています。最初の行では、VS 要素に VARSVS、または QOSPARAMS 要素を含めることができるように指定しています (この要素にほかの要素を含めることができない場合は、カッコ () の中に要素名のリストではなく EMPTY が表示されます)。残りの行では、VSCLASS 要素に idobjectfilerootobject、または acceptlanguage 属性を含めることができるが、id 属性のみが必須であることを指定しています。

<!ELEMENT VSCLASS (VARS?,VS*,QOSPARAMS?)>
<!ATTLIST VSCLASS
   id ID #REQUIRED
   objectfile CDATA #IMPLIED
   rootobject CDATA #IMPLIED
   acceptlanguage (yes|no|on|off|1|0) #IMPLIED

IDCDATA などのラベルは、XML データ型です。XML の詳細は、次の場所にある XML の仕様を参照してください。

http://www.w3.org/TR/REC-xml



server.xml ファイル



server.xml ファイルは、サーバが待機するアドレスとポートを構成し、仮想サーバをそれらの待機ソケットに割り当てます。エンコーディングは、通常の UNIX テキストエディタと互換性を保つために、 UTF-8 を使用します。server.xml ファイルは、server_root/https-server_id/config ディレクトリにあります。

次に示すのは、簡単な server.xml ファイルです。これには、2 つの待機ソケット (LS)、2 つの仮想サーバクラス (VSCLASS)、および 3 つの仮想サーバ (VS) が含まれています。

<?xml version="1.0" encoding="UTF-8"?>

<!-- declare any variables to be used in the server.xml file in the ATTLIST below -->
<!DOCTYPE SERVER SYSTEM "server.dtd" [
<!ATTLIST VARS
   docroot CDATA #IMPLIED
   adminusers CDATA #IMPLIED
   webapps_file CDATA #IMPLIED
   webapps_enable CDATA #IMPLIED
   accesslog CDATA #IMPLIED
   user CDATA #IMPLIED
   group CDATA #IMPLIED
   chroot CDATA #IMPLIED
   dir CDATA #IMPLIED
   nice CDATA #IMPLIED
 >
]>

<SERVER legacyls="ls1">
   <VARS accesslog="/iws60/https-server.iplanet.com/logs/access"/>
   <LS id="ls1" ip="1.1.1.1" port="80" security="off"
   acceptorthreads="1">
       <CONNECTIONGROUP id="group1" matchingip="default"
       servername="server.iplanet.com"
       defaultvs="server.iplanet.com"/>
   </LS>
   <LS id="ls2" ip="any" port="80" security="off"
   acceptorthreads="1">
       <CONNECTIONGROUP id="group2" matchingip="default"
       servername="server2.iplanet.com"
       defaultvs="server2.iplanet.com"/>
   </LS>
   <MIME id="mime1" file="mime.types" />
   <ACLFILE id="acl1"
   file="/iws60/httpacl/generated.https-server.iplanet.com.acl" />
   <VSCLASS id="defaultclass" objectfile="obj.conf"
   rootobject="default" >
       <VARS docroot="/iws60/docs" />
       <VS id="server.iplanet.com" connections="group1" mime="mime1"
       aclids="acl1">
          <VARS webapps_file="web-apps.xml" webapps_enable="on" />
          <USERDB id="default" database="default" />
       </VS>
   </VSCLASS>
   <VSCLASS id="class2" objectfile="class2.obj.conf"
   rootobject="default" >
       <VARS docroot="/iws60/docs/class2" />
       <VS id="server2.iplanet.com" connections="group2"
       mime="mime1" aclids="acl1">
          <VARS webapps_file="web-apps.xml" webapps_enable="on" />
          <USERDB id="default" database="default" />
       </VS>
       <VS id="acme.com" connections="group2"
       mime="mime1" aclids="acl1">
          <VARS docroot="/iws60/docs/class2/acme"
          webapps_file="web-apps.xml" webapps_enable="on" />
          <USERDB id="default" database="default" />
       </VS>
   </VSCLASS>
</SERVER>

IP アドレスまたは Host ヘッダーと一致する仮想サーバ (VS) が見つからない場合、要求は CONNECTIONGROUP に定義されているデフォルトの VS を使って処理されます。この VS は、カスタマイズされたエラーメッセージを出力したり、特殊なドキュメントルートを使用して要求を処理するようにすることもできます。


変数

obj.conf ファイルで使用するために変数を定義することは、必須ではありませんが、定義すると役に立つこともあります。次のコードでは、docroot 変数を定義して使用しています。

<?xml version="1.0" encoding="UTF-8"?>

<!-- declare any variables to be used in the server.xml file in the ATTLIST below -->
<!DOCTYPE SERVER SYSTEM "server.dtd" [
<!ATTLIST VARS
   docroot CDATA #IMPLIED
   ...
 >
]>
...
       <VS id="acme.com" connections="group2"
       mime="mime1" aclids="acl1">
          <VARS docroot="/iws60/docs/class2/acme"
          webapps_file="web-apps.xml" webapps_enable="on" />
          <USERDB id="default" database="default" />
       </VS>
...

docroot 変数を使うことによって、それぞれの仮想サーバに、異なるドキュメントルートディレクトリを割り当てることができます。その後、この変数は obj.conf ファイルでも使用できます。次に例を示します。

NameTrans fn=document-root root="$docroot"

この docroot 変数を使うと、obj.conf ファイルに仮想サーバクラス用のドキュメントルートを個別に定義しなくてもすみます。また、同じ仮想サーバクラスの仮想サーバごとに、異なるドキュメントルートを定義することもできます。



  変数の置換が許可されているのは、obj.conf ファイル内だけです。iPlanet Web Server のほかの構成ファイルでは許可されていません。

obj.conf ファイルで参照される変数はすべて、server.xml ファイル内に SERVERVSCLASS、または VS レベルで定義する必要があります。デフォルト値を持つ変数を SERVER または VSCLASS レベルで定義し、それらを VS でオーバーライドすることをお勧めします。

 




変数の書式

次のような正規表現と一致する文字列が、変数であると認識されます。

\$[A-Za-z][A-Za-z0-9_]*

この式は、$ とそれに続く 1 つ以上の英数字を表しています。区切り文字で区切られたバージョン ("${VARS}") はサポートされていません。通常の $ 文字を取得するには、ファイル内で $$ を使用して変数の置換を行ないます。


id 変数

特殊変数 id は、常に VS 要素内で利用することができ、id 属性の値を参照します。これは事前に定義されており、オーバーライドはできません。id 属性は、仮想サーバを一意に識別します。次に例を示します。

<VARS
   docroot="/export/$id"
/>

包含する VSid 属性が myserver の場合、docroot 変数は値 /export/myserver に設定されます。


インタフェースで使われる変数

次に示す変数は、Administration Server、サーバマネージャ、クラスマネージャ、および仮想サーバマネージャで使用されます。$id 変数とは違い、これらの変数はサーバで事前に定義されていないため、オーバーライドすることができます。

$docroot

仮想サーバのドキュメントルート。通常、obj.conf ファイル内の document-root パラメータの値として評価されます。

$webapps_file

Web アプリケーションの構成ファイルのパスおよび名前。通常は web-apps.xml です。web-apps.xml の詳細は、iPlanet Web Server の『サーブレットに関するプログラマーズガイド』を参照してください。

$webapps_enable

VS に対して Web アプリケーションが有効になっているかどうかを示すフラグ。指定できる値は、onoff です。webapps_file 変数に VS の値がある場合、この変数は定義する必要はなく、on とみなされます。

$accesslog

仮想サーバのログファイル。

$user

send-cgi SAF の user パラメータの値。

$group

send-cgi SAF の group パラメータの値。

$chroot

send-cgi SAF の chroot パラメータの値。

$dir

send-cgi SAF の dir パラメータの値。

$nice

send-cgi SAF の nice パラメータの値。


変数評価

変数は、個々の仮想サーバについて特定の objset を生成するときに評価されます。

評価は再帰的であり、 変数値にほかの変数を含めることができます。次に例を示します。

...
<SERVER>
   <VARS docrootbase = "/export" />
   ...
   <VSCLASS ...>
       <VARS docroot = "$docrootbase/nonjava/$id" />
       ...
   </VSCLASS>
   <VSCLASS ...>
       <VARS docroot = "$docrootbase/java/$id" />
       ...
   </VSCLASS>
   ...
</SERVER>
...

ツリーの下側にある変数が、上にある変数をオーバーライドします。たとえば、仮想サーバのクラスに対して変数を設定し、個々の仮想サーバ内の同じ変数の定義でその変数をオーバーライドすることができます。


サーバマネージャとクラスマネージャの使用

iPlanet Web Server の『管理者ガイド』で説明されているように、サーバマネージャとクラスマネージャのインタフェースを介して、仮想サーバクラスと仮想サーバを iPlanet Web Server に追加することができます。



server.dtd および server.xml 内の要素



この節では、server.dtd および server.xml ファイル内の XML 要素について説明します。部分要素は、それらのリストされている順序で定義する必要があります。


SERVER

サーバを定義します。server.xml ファイルには、この要素のうちの 1 つだけを設定することができます。

部分要素 : VARSLSMIMEACLFILEVSCLASSQOSPARAMS

属性 :

qosactive

サービス品質の機能を有効にします。これにより、サーバエンティティに制限を設定したり、帯域幅と接続のサーバ統計を表示したりできます。指定できる値は、yesnoonoff10 です。デフォルトは no です。

qosmetricsinterval

(省略可能) トラフィックを測定する間隔 (秒)。デフォルトは 30 です。

qosrecomputeinterval

(省略可能) すべてのサーバエンティティの帯域幅を再計算する期間 (ミリ秒)。デフォルトは 100 ms です。

legacyls

古いバージョン (4.x) のアプリケーションの待機ソケットの id 属性。この LS には、1 つの CONNECTIONGROUP だけを含める必要があります。さらに、CONNECTIONGROUP には、その defaultvs である 1 つの VS だけを指定する必要があります。古いバージョンのアプリケーションはすべてこの仮想サーバ上で稼動する必要があり、これがサーバ全体に対するデフォルトの仮想サーバです。


VARS

server.xml に値を指定することができ、obj.conf で参照できる変数を定義します。「変数」を参照してください。server.xml で通常定義される変数のリストについては、「インタフェースで使われる変数」を参照してください。

部分要素 : なし

属性 : なし


LS (待機ソケット)

待機ソケットを定義します。



  セキュリティ保護された待機ソケットをサーバマネージャで作成するとき、セキュリティは自動的に magnus.conf でグローバルにオンになります。セキュリティ保護された待機ソケットを server.xml で手動で作成するときは、magnus.conf を編集してセキュリティをオンにする必要があります。

 



部分要素 : CONNECTIONGROUP

属性 :

id

(省略可能) ソケットファミリのタイプ。ソケットファミリのタイプは、数字で始めることはできません。

セキュリティ保護された待機ソケットを server.xml ファイルで作成するときは、magnus.confSecurity をオンにする必要があります。セキュリティ保護された待機ソケットをサーバマネージャで作成するとき、セキュリティは自動的に magnus.conf でグローバルにオンになります。待機ソケットの名前は、数字で始めることはできません。

ip

待機ソケットの IP アドレス。ドットで区切ったペアまたは IPv6 の表記法で指定できます。また、INADDR_ANYany も指定できます。複数の CONNECTIONGROUP が指定されている場合は、any で待機するようにその待機ソケットを構成する必要があります。

port

待機ソケットを作成するポート番号。有効な値は、165535 です。UNIX の場合、ポート 11024 で待機するソケットを作成するには、スーパーユーザ特権が必要です。ポート 443 で待機するように SSL 待機ソケットを構成するようお勧めします。2 つの異なる IP アドレスが同じポートを使用することはできません。

security

(省略可能) 待機ソケットが SSL を実行するかどうかを決定します。有効な値は、onoffyesno10 です。デフォルトは no です。SSL2 または SSL3 をオンまたはオフにし、CONNECTIONGROUP オブジェクト内の SSLPARAMS オブジェクトを使用して符号化方式を設定することができます。

magnus.conf ファイル内の Security 設定は、サーバインスタンスに対して証明書を利用できるようにすることで、SSL をグローバルに有効または無効にします。したがって、magnus.conf 内の Securityon にする必要があります。そうしないと、server.xmlsecurity は機能しません。詳細は、第 7 章「magnus.conf の構文と使用法」を参照してください。

acceptorthreads

(省略可能) 待機ソケットの受け入れ側スレッドの数。推奨値は、マシン内のプロセッサの数です。デフォルトは 1 で、有効な値は 11024 です。

family

(省略可能) ソケットファミリのタイプ。デフォルトは inet で、有効な値は inet、inet6、および nca です。IPv6 の待機ソケットの場合は、値 inet6 を使用します。値 inet6 を使用すると、ログファイル内の IPv4 アドレスに接頭辞 ::ffff: が付きます。Solaris Network Cache および Accelerator を使用するよう nca を指定します。

blocking

(省略可能) 待機ソケットと受け入れられたソケットをブロックモードにするかどうかを決定します。ブロックモードを使用すると、ベンチマーク結果が向上する場合があります。有効な値は、onoffyesno10 です。デフォルトは no です。



警告  

ブロックモードのソケットは、現実の導入では使用しないでください。 ブロックモードのソケットを使用すると、動的な再構成ができなくなり、サーバをサービス妨害攻撃の危険にさらすことになります。

 




CONNECTIONGROUP

仮想サーバを割り当てることができる接続プロパティのグループを定義します。詳細は、 「要求処理のための仮想サーバの選択」を参照してください。

部分要素 : SSLPARAMS

属性 :

id

接続グループの内部名。CONNECTIONGROUP 名は、数字で始めることはできません。

matchingip

関連付けられた仮想サーバが使用する IP アドレス、または値 default。ドットで区切った数字の組み合わせ、または IPv6 の表記法で指定できます。INADDR_ANYany は指定できません。包含する LSip=any がない場合は、default でなければなりません。

包含する LSip=any がある場合は、特定の IP アドレスまたは default にすることができます。この場合、default は、ほかの LS または CONNECTIONGROUP 要素で指定されていない任意の IP アドレスを意味します。

defaultvs

この特定の接続グループのための、デフォルトの仮想サーバの id 属性。

servername

サーバがクライアントに送信する URL のホスト名セクションに指定する名前をサーバに伝えます。これは、サーバが自動的に生成する URL に影響を与えます。サーバに格納されるディレクトリおよびファイルの URL には影響を与えません。サーバがエイリアスを使用する場合は、この名前もエイリアス名にする必要があります。

コロンとポート番号を付加すると、サーバがクライアントに送信する URL でそのポートが使われます。


SSLPARAMS

接続グループの SSL パラメータを定義します。

1 つのSSLPARAMS 要素を、security 属性が on に設定されている待機ソケットに含まれる CONNECTIONGROUP 要素の内側に指定する必要があります (内側だけに指定できます)。

部分要素 : なし

属性 :

servercertnickname

証明書データベースまたは PKCS#11 トークン内のサーバ証明書のニックネーム。証明書では、名前の書式は tokenname:nickname です。この属性内の名前の tokenname: の部分は、省略可能です。

ssl2

(省略可能) SSL2 を有効にするかどうかを決定します。有効な値は、onoffyesno10 です。デフォルトは no です。

1 つの仮想サーバに対して SSL2 と SSL3 の両方が有効になっている場合、サーバは最初に SSL3 暗号化を試みます。それに失敗すると、SSL2 暗号化を試みます。

ssl2ciphers

(省略可能) 使用される SSL2 符号化方式の、スペースで区切られたリスト。有効にするには接頭辞 + を付け、無効にするには - を付けます。たとえば、+rc4 のようになります。指定できる値は、rc4exportrc2exportideades です。

ssl3

(省略可能) SSL3 を有効にするかどうかを決定します。有効な値は、onoffyesno10 です。デフォルトは yes です。

1 つの仮想サーバに対して SSL2 と SSL3 の両方が有効になっている場合、サーバは最初に SSL3 暗号化を試みます。それに失敗すると、SSL2 暗号化を試みます。

ssl3tlsciphers

(省略可能) 使用される SSL3 符号化方式の、スペースで区切られたリスト。有効にするには接頭辞 + を付け、無効にするには - を付けます。たとえば、+rsa_des_sha のようになります。指定できる SSL3 値は、rsa_des_sharsa_rc4_40_md5rsa_rc2_40_md5rsa_null_md5 です。指定できる TLS 値は、rsa_des_56_sharsa_rc4_56_sha です。

tls

(省略可能) TLS を有効にするかどうかを決定します。有効な値は、onoffyesno10 です。デフォルトは on です。

tlsrollback

(省略可能) TLS ロールバックを有効にするかどうかを決定します。有効な値は、onoffyesno10 です。デフォルトは on です。Microsoft Internet Explorer 5.0 および 5.5 の場合は、TLS ロールバックを有効にする必要があります。詳細は、iPlanet Web Server の『管理者ガイド』を参照してください。

clientauth

(省略可能) ACL ベースのアクセス制御から独立して、すべての要求で SSL3 クライアント認証を実行するかどうかを決定します。有効な値は、onoffyesno10 です。デフォルトは no です。


MIME

MIME タイプを定義します。

要求された、リソースの MIME タイプをサーバが決定するもっとも一般的な方法は、obj.conf ファイルの ObjectType セクションにある type-by-extension 指令を呼び出すことです。type-by-extension 関数は、SERVER 要素で MIME 要素が定義されていない場合は機能しません。

部分要素 : なし

属性 :

id

MIME タイプのリストの内部名。仮想サーバが使用する MIME タイプを定義するために、VS 要素で使用されます。MIME タイプ名は、数字で始めることはできません。

file

MIME タイプのファイルの名前。このファイルの書式の詳細は、付録 B「MIME タイプ」を参照してください。


ACLFILE

1 つ以上の ACL ファイルを参照します。

部分要素 : なし

属性 :

id

ACL ファイルのリストの内部名。仮想サーバが使用する ACL ファイルを定義するために、VS 要素で使用されます。ACL ファイルのリスト名は、数字で始めることはできません。

file

ACL ファイルの、スペースで区切られたリスト。各 ACL ファイルの名前は一意でなければなりません。ACL ファイルの書式の詳細は、iPlanet Web Server の『管理者ガイド』を参照してください。

デフォルトの ACL ファイルの名前は、generated.https-server_id.acl で、このファイルは server_root/server_id/httpacl ディレクトリにあります 。このファイルを使用するには、server.xml 内でこのファイルを参照する必要があります。


VSCLASS

仮想サーバクラスを定義します。

部分要素 : VARSVSQOSPARAMS

属性 :

id

仮想サーバクラス ID。これは、特定の仮想サーバクラスの検索を可能にする一意な ID です。仮想サーバクラス ID は、数字で始めることはできません。

objectfile

仮想サーバのこのクラスのための obj.conf ファイルのファイル名。VS 要素内でオーバーライドすることはできません。

rootobject

(省略可能) obj.conf ファイルから読み込まれるオブジェクトのうちどれがデフォルトかをサーバに伝えます。デフォルトのオブジェクトには、その仮想サーバのためのすべての名前変換 (NameTrans) 指令があることが期待されており、デフォルトのオブジェクト内に構成されているサーバの動作はすべてサーバ全体に影響を与えます。デフォルト値は default です。

存在しないオブジェクトを指定すると、サーバはクライアントがドキュメントを取得しようとするまでエラーを報告しません。サーバマネージャでは、デフォルトは default という名前のオブジェクトであるとみなします。サーバマネージャを使用する (または使用を予定している) 場合は、この規則から外れないようにしてください。

acceptlanguage

(省略可能) on の場合、サーバは Accept-Language ヘッダーを構文解析し、クライアントが受け入れ可能な言語に基づいて、適切な言語のバージョンを送信します。サーバが複数の言語をサポートする場合にのみ、この値を on にすべきです。デフォルトは off です。VS 要素内でオーバーライドすることができます。


VS (仮想サーバ)

仮想サーバを定義します。

部分要素 : VARSQOSPARAMSUSERDB

属性 :

id

仮想サーバ ID。これは、特定の仮想サーバの検索を可能にする一意な ID です。obj.conf ファイル内の変数 $id として参照することもできます。仮想サーバ ID は、数字で始めることはできません。

connections

(省略可能) 仮想サーバが使用する接続 (1 つまたは複数) を指定する、スペースで区切られた CONNECTIONGROUP id のリスト。CONNECTIONGROUPdefaultvs ではない VS の場合に限り必要です。

urlhosts

現在の仮想サーバを選択するために Host 要求ヘッダーで許可される値の、スペースで区切られたリスト。同じ CONNECTIONGROUP に指定されている各 VS には、そのグループに対して一意な urlhosts 値がなければなりません。

mime

仮想サーバが使用する MIME 要素の id

state

(省略可能) VS がアクティブ (on) か非アクティブ (offdisable) かを決定します。デフォルトは on (アクティブ) です。非アクティブのとき、VS は要求にサービスを提供しません。

VSdisable の場合、これを on にできるのはグローバルサーバ管理者だけです。

aclids

(省略可能) スペースで区切られた、ACLFILE 要素の 1 つ以上の id 属性。仮想サーバが使用する ACL ファイル (1 つまたは複数) を指定します。

errorlog

(省略可能) 仮想サーバ固有のエラーメッセージ用のログファイルを指定します。

acceptlanguage

(省略可能) on の場合、サーバは Accept-Language ヘッダーを構文解析し、クライアントが受け入れ可能な言語に基づいて、適切な言語のバージョンを送信します。サーバが複数の言語をサポートする場合にのみ、この値を on にすべきです。デフォルトは off です。


QOSPARAMS

SERVERVSCLASS、または VS のサービス品質のパラメータを定義します。

SERVER 要素の属性は、サービス品質の機能を有効にします。さらに、qos-handler および qos-error SAF は、obj.conf ファイルに含まれている必要があります。

詳細は、『Performance Tuning, Sizing, and Scaling Guide for iPlanet Web Server』を参照してください。

部分要素 : なし

属性 :

maxbps

(省略可能) SERVERVSCLASS、または VS の帯域幅の最大制限値 (単位 : bps)。

enforcebandwidth

(省略可能) 帯域幅制限を強制するかどうかを指定します。指定できる値は、yesnoonoff10 です。デフォルトは no です。

maxconn

(省略可能) SERVERVSCLASS、または VS の同時接続の最大数。

enforceconnections

(省略可能) 接続制限を強制するかどうかを指定します。指定できる値は、yesnoonoff10 です。デフォルトは no です。


USERDB

仮想サーバが使用するユーザデータベースを定義します。

指定された仮想サーバに対してユーザデータベースが選択される方法の詳細は、「ユーザデータベースの選択」を参照してください。

部分要素 : なし

属性 :

id

仮想サーバの ACL ファイル内のユーザデータベース名。ユーザデータベース名は、数字で始めることはできません。

database

dbswitch.conf ファイル内のユーザデータベース名。

basedn

(省略可能) dbswitch.conf ファイル内のベース DN 検索をオーバーライドします。ただし、basedn 値は、依然として dbswitch.conf エントリからのベース DN 値に対して相対的です。

certmaps

(省略可能) LDAP エントリマッピング (certmap.conf で定義されている) に対して使用する証明書を指定します。存在しない場合、すべてのマッピングが使われます。certmap.conf 内のマッピングに基づくすべての検索は、VS の最終ベース DN に対して相対的です。



要求処理のための仮想サーバの選択



サーバは、要求を処理する前に、待機ソケットを介して要求を受け入れてから、適切な接続グループと仮想サーバにその要求を送信する必要があります。この節では、仮想サーバがどのように決定されるかについて説明します。

仮想サーバが決定されたら、サーバは、その仮想サーバが属する仮想サーバクラスの obj.conf ファイルを実行します。サーバが obj.conf で実行する指令を決定する方法の詳細は、「obj.conf 内の制御のフロー」を参照してください。

接続グループは、最初に次のように選択されます。

  • 待機ソケットが特定の IP アドレスで待機するよう構成されている場合は、1 つの接続グループだけを含めることができ、そのグループが選択されます。

  • 待機ソケットが any で待機するよう構成されている場合、クライアントが接続した IP アドレスは、その待機ソケットに含まれる接続グループの matchingip 属性とマッチングされます。一致する matchingip 属性がない場合、matchingip=default を持つ接続グループが選択されます。

その後、仮想サーバは次のように選択されます。

  • 接続グループがデフォルトの仮想サーバのみに指定されている場合は、その仮想サーバが選択されます。

  • 複数の仮想サーバが指定されている接続グループの場合、要求 Host ヘッダーは仮想サーバの urlhosts 属性とマッチングされます。Host ヘッダーがないか、一致する urlhosts 属性がない場合、その接続グループのデフォルトの仮想サーバが選択されます。

仮想サーバが SSL 待機ソケットに指定されている場合、その urlhosts 属性はサーバ起動時に証明書のサブジェクトパターンに照らして検査され、一致しなければ警告が生成されてエラーログに書き込まれます。



ユーザデータベースの選択



USERDB オブジェクトは、包含する仮想サーバのユーザデータベースを選択します。この選択は、仮想サーバの ACL ファイルと dbswitch.conf ファイルによって決まります。

ACL ファイルの書式は、以前のバージョンの iPlanet Web Server から変更されていません。ただし、iPlanet Web Server 6.0 では次のような変更が行なわれました。

  • server.xml 内の仮想サーバは、ACL ファイルを参照します。magnus.conf ファイルは、ACL ファイルを参照しなくなりました。

  • ACL ファイルの database 属性は、直接 dbswitch.conf エントリにマッピングされません。代わりに、USERDB 要素の id 属性にマッピングされます。その後、USERDB 要素の database 属性は、dbswitch.conf エントリにマッピングされます。ACL ファイルと dbswitch.conf ファイルの間のこのような特別な層により、サーバ管理者は、仮想サーバ管理者およびユーザがどのデータベースに対してアクセス権を持つかを完全に制御できます。

iPlanet Web Server 6.0 では、dbswitch.conf ファイルと LDAP データベースに次のような変更が導入されています。

  • dbswitch.conf 内の LDAP URL 内のベース DN は、これ以降のすべての DN 仕様のためのルートオブジェクトを定義します。このため、ほとんどの新しいインストールではこれを空にすることができます。これは、最終ベース DN が別の方法、つまり、DC ツリー検索または USERDB タグ内の明示的な「basedn」値のいずれかを使う方法で決定されるためです。

  • LDAP データベースの新しい dbswitch.conf 属性である dcsuffix は、DC ツリーのルートを定義します。このルートは、LDAP URL 内のベース DN に対して相対となります。データベースが schema compliant の場合は、dcsuffix を使用できます。スキーマに準拠するための要件は、「iPlanet LDAP スキーマ」にリストされています。

ユーザデータベースは、仮想サーバに対して次のように選択されます。

  • VSUSERDB 部分要素がない場合、ユーザベースまたはグループベースの ACL は失敗します。

  • 仮想サーバの ACL 定義に database 属性がない場合、VS には defaultid 属性を持つ USERDB 部分要素が必要です。その後、USERDBdatabase 属性が、dbswitch.conf 内のデータベースをポイントします。「database」属性がない場合は、「default」が使用されます。

  • LDAP データベースがスキーマに準拠している場合、アクセスのベース DN は、CONNECTIONGROUP の servername 属性の DC ツリー検索を使って計算されます。DC ツリー検索は、dcsuffix DN に基づいています。結果には、ベース DN が含まれている inetDomainBaseDN 属性が含まれている必要があります。このベース DN は現状のまま使用され、どのベース DN 値とも相対的ではありません。

  • USERDB 要素の basedn 属性がなく、データベースがスキーマに準拠していない場合、アクセスは以前のバージョンの iPlanet Web Server の場合と同じように、dbswitch.conf エントリ内のベース DN に基づいて行なわれます。



iPlanet LDAP スキーマ

LDAP データベースがこの節で概説されている要件を満たす場合は、dbswitch.conf ファイル内の dcsuffix 属性を使用できます。

ISP エントリ (たとえば、o=isp) でルートになっているサブツリーは、「コンバージェンスツリー」 と呼ばれます。これには、ISP がサービスを提供する組織 (顧客) に関連するすべてのディレクトリデータが含まれます。

o=internet でルートになっているサブツリーは、「ドメインコンポーネントツリー」または「dc ツリー」と呼ばれます。これには、サービスを受ける顧客ドメイン用のエントリを持つ空白 DNS ツリーが含まれます。これらのエントリは、そのドメイン用のデータが置かれているコンバージェンスツリー内の適切な位置へのリンクです。

ディレクトリツリーは単一でルートになることができ、それが推奨されています (たとえば、o=root には、その下に o=ispo=internet を持つことができます)。または、コンバージェンスツリー用と dc ツリー用の 2 つの別々のルートを持つことができます。


コンバージェンスツリー

コンバージェンスツリーの最上位には、顧客 (または組織) ごとに 1 つの組織エントリと、 ISP 自体に 1 つの組織エントリが必要です。

各組織の下には、次の 2 つの organizationalUnit エントリが必要です。ou=People および ou=Groups です。デバイスデータをその組織用に格納する場合は、3 番目の ou=Devices の存在も可能です。

各ユーザエントリには、指定された組織内で一意な uid 値が必要です。このサブツリーの下のネームスペースは、ユーザエントリを便利なグループにまとめる (たとえば、ou=engou=corp など)、さまざまな ou エントリに分割することができます。ユーザ uid 値は、People サブツリー内全体では一意なままでなければなりません。

コンバージェンスツリー内のユーザエントリのタイプは、inetOrgPerson です。cnsn、および uid 属性がなければなりません。uid 属性は有効な電子メール名でなければなりません (特に、RFC822 に定義されている有効なローカル部でなければなりません)。cn には name initial sn を含めるようお勧めします。ユーザエントリの RDN を uid 値にするようお勧めします。サービスに対して使用可能になっている、または有効であるとみなされる場合、ユーザエントリには補助クラス inetUser を含める必要があります。

ユーザエントリには補助クラス inetSubscriber も含めることができます。これは、アカウント管理のために使われます。エントリに inetUserStatus 属性があり、値が inactive または deleted の場合、そのエントリは無視されます。

グループは Groups サブツリーの下にあり、タイプ groupOfUniqueNames の LDAP エントリで構成されます。


ドメインコンポーネント (dc) ツリー

dc ツリーには階層的な domain エントリが含まれており、それぞれは DNS 名前コンポーネントです。

顧客のドメイン名を表すエントリは、LDAP 補助クラス inetDomain とオーバーレイされます。たとえば、2 つの LDAP エントリ dc=customer1,dc=com,o=Internet,o=root および dc=customer2,dc=com,o=Internet,o=root には inetDomain クラスが含まれますが、dc=com,o=Internet,o=root には含まれません。後者は、ツリーに構造を提供するためだけに存在しています。

inetDomain 属性を持つエントリは、仮想ドメインと呼ばれます。これらには、最上位の組織エントリの DN が入った属性 inetDomainBaseDN が必要です。その最上位の組織エントリで、このドメインのデータがコンバージェンスツリーに格納されます。たとえば、dc=cust2,dc=com,o=Internet,o=root 内の仮想ドメインエントリには、値 o=cust2,o=isp,o=root を持つ属性 inetDomainBaseDN が含まれます。

エントリに inetDomainStatus 属性があり、値が inactive または deleted の場合、そのエントリは無視されます。


前へ     目次     索引     DocHome     次へ     
Copyright © 2000 Sun Microsystems, Inc. Some preexisting portions Copyright © 2000 Netscape Communications Corp. All rights reserved.

Last Updated September 21, 2001