![]() ![]() ![]() ![]() ![]() |
管理ガイド 05/21/03 10:02:24 |
Novell exteNd Application Serverは、既存のWebサーバフレームワーク内のアプリケーションサーバを統合できるWebサーバ統合(WSI)モジュールを提供します。この章には、次のトピックが含まれています。
サポートされるWebサーバ WSIがサポートするアプリケーションサーバは、次のWebサーバです
Webサーバ |
プラットフォーム |
---|---|
Apache HTTPサーバ |
Linux、NetWare、Solaris、Windows |
Microsoft IIS |
Windows |
Sun iPlanet Enterprise |
AIX、HP-UX、Solaris、Windows |
。
サポートされるWebサーババージョンのリストについては、リリースノートを参照してください。
WSIモジュールは、要求を処理するアプリケーションサーバに特定URL (またはURLセット)の要求を転送して、既存Webサーバディレクトリ構造のURL名前空間を拡張します。この動作は、次のとおりです。
ブラウザおよびアプリケーションサーバ間に直接の通信はありません。すべてのコールはWSIを介して渡されます。応答時間を向上させるには、アプリケーションサーバへの接続をプールするようWSIを設定できます。
次の5つの例は、企業ネットワークでのWSI使用方法を示します。
最初の4つの例で、WSIモジュールはURL http://www.ABC.com/daytime/schedule.htmlへのクライアント要求をhttp://sssw.ABC.com/daytime/schedule.html (クライアントのURLアドレスは変わりません)へ転送します。
例1: アプリケーションサーバが1つのWebサーバ この単純な例では、WSIはWebサーバから単一のアプリケーションサーバに要求を転送します。
注記: 環境のセットアップには、さまざまな方法があります。たとえば、次の4例の各々で、内部ファイアウォールの背後にデータベースを配置できます。企業データベースをDMZ外に配置すると、データベースを保護することができます。
例2: クラスタアプリケーションサーバを持つWebサーバ WSIは、単一のWebサーバからアプリケーションサーバのクラスタに要求を転送します。このアプローチは、データベースアクセスを増やし、アプリケーションサーバが障害の急所となるリスクを減らします。
例3: 複数Webサーバおよびアプリケーションサーバ 複数のWSIモジュールが、複数のアプリケーションサーバに要求を転送するように設定されます。このアプローチは、大量の要求を処理するときに信頼性があります。
例4: 負荷を分散するハードウェアディスパッチャ 複数のWSIが、複数のWebサーバから複数のアプリケーションサーバに要求を転送します。フロントエンドとバックエンドに複数のサーバがあり、負荷を分散するディスパッチャを両エンドで使用するため、最大量の要求処理の信頼性が向上します。
例5: 複数のアプリケーションサーバを持つWebサーバ WSIモジュールは複数の設定でセットアップされ、着信URLによって異なるアプリケーションサーバに要求をルーティングできます。abc.comへの要求はserv1.myco.comに送信され、xyz.comへの要求はserv2.myco.comに送信されます。詳細については、 複数アプリケーションサーバへの要求の送信を参照してください。
手順 |
アクション |
詳細についての参照先 |
---|---|---|
1 |
WSIファイルをインストール |
WSIファイルをインストールするには、アプリケーションサーバのインストールディレクトリから、Webサーバディレクトリ構造内の特定の場所にファイルをコピーします。
|
2 |
WSIモジュールを設定および有効化 |
WSIモジュールを設定するには、WSIモジュールディレクティブを設定に追加します。編集するファイルおよび指定するディレクティブは、使用しているWebサーバによって異なります。 WSIモジュールを有効にするには、Webサーバ固有のタスクを実行します。
|
3 |
WSIモジュール設定を調整 |
接続プールまたは他のセキュリティ統合オプションを利用できます。
|
WSIモジュールをインストール、設定、および有効にする前に、次の点に注意してください。
WSIは、認証にクライアント証明書を必要とするよう設定されたアプリケーションサーバとは使用できません。
WSIモジュールは、ブラウザからアプリケーションサーバにクライアント証明書を転送できません。WSIはアプリケーションサーバへの新しいHTTPS接続を開くため、WSIはこの接続にクライアント証明書を使用するために、クライアント証明書のプライベートキーにアクセスすることが必要です。ただし、プライベートキーはクライアントコンピュータのブラウザによって安全に保存されているため、使用できません。WSIはアプリケーションサーバにクライアント証明書を送信できないため、認証にクライアント証明書を必要とするよう設定されたアプリケーションサーバとは使用できません。
クラスタアプリケーションサーバでは、WSIは、ファイアウォールの1つのポートを介してアプリケーションサーバに要求を安全にリダイレクトするため、サードパーティハードウェアディスパッチャを必要とします。
アプリケーションサーバのソフトウェアディスパッチャ(SilverDispatcher)は、URLをリダイレクトしてサーバクラスタを負荷分散するため、アプリケーションサーバ付属のWSIモジュールは、SilverDispatcherとは使用できません。
アプリケーションサーバはリモートで実行できます。Webサーバコンピュータから実行する必要はありません。
WSIファイルをインストールするには、アプリケーションサーバのインストールディレクトリから、Webサーバディレクトリ構造内の特定の場所に特定のファイルセットをコピーします。詳細については次を参照してください。
注記: NetWareでは、インストール中にApache WSIが自動的にインストールされて設定されるため、Apache HTTPサーバへのWSIファイルインストールに関するこの節は省略してください。 Apache HTTPサーバの設定および有効化を参照してください。
Apache HTTPサーバにWSIファイルをインストールする
$APACHE_ROOT/modulesディレクトリに、次の表にリストされたファイルをコピーします。
Webサーバプラットフォーム |
アプリケーションサーバインストールディレクトリ |
コピーするファイル |
---|---|---|
Linux |
/WSI/Linux |
mod_wsi.so |
NetWare |
WSI/NetWare |
mod_wsi.nlm |
Solaris |
WSI/SolarisSPARC |
mod_wsi.so |
Windows |
\WSI\WinNT |
mod_wsi.dll |
Microsoft IISにWSIファイルをインストールする
Webサーバルートの下に物理ディレクトリまたは仮想ディレクトリを作成します( WSI.root.dirの説明を参照)。例:
C:\Inetpub\wwwroot\agisapi
アプリケーションサーバの\WSI\WinNTディレクトリから、Webサーバのルートディレクトリまたは作成したディレクトリに、次のファイルをコピーします。
Webサーバプラットフォーム |
ディレクトリ |
---|---|
UNIX |
/opt/agnsapi |
Windows |
C:\agnsapi |
アプリケーションサーバのインストールディレクトリから、作成したディレクトリに次のファイルをコピーします。
WSIモジュールを設定するには、適切な設定ファイルを編集する必要があります。
Webサーバ |
設定ファイル |
ソースディレクトリ |
---|---|---|
Apache HTTP Server |
httpd.conf |
ApacheのROOT/modules
|
Microsoft IIS |
AgWSI.conf |
アプリケーションサーバの\WSI \プラットフォームディレクトリ(たとえば、\WSI\WinNT)
|
Sun iPlanet |
Apache WSIモジュールを設定して有効にするには、Apacheサーバのhttpd.confファイルにディレクティブのセットを追加するか、またはhttpd.confファイルを含む個別の設定フィルルにディレクティブを追加します。選択するディレクティブがWSIの機能を決定します。どのURLを処理するか、どのアプリケーションサーバ(およびポート)がURLを処理するか、およびWSIが接続プール、SSLなどを使用するかどうか。
注記: NetWareでは、インストール中にApache WSIが自動的に設定されて有効になるため、Apache WSIの設定および有効化に関するこの節は省略してください。デフォルトでは、NetWareのインストールは、基本的なApache WSI設定を含むAgWSI.confと呼ばれる設定ファイルを生成します。httpd.confファイルはAgWSI.confファイルを参照します。インストールされた設定に含まれるディレクティブの修正については、 Apache WSIディレクティブリファレンスを参照してください。
ApacheLocationMatchディレクティブを追加して、WSIに管理させるURLを指定します。次のようになります。
<LocationMatch /Root_URL_to_Forward>
ここで、/Root_URL_to_Forwardは、WSIがアプリケーションサーバに転送するURLです。
すべてのURLをアプリケーションサーバに転送するには、次のものを指定します。
<LocationMatch />
LocationMatchの要素(次の行)内で、Apache SetHandler ディレクティブを追加して、wsi-handlerを指定します。例:
<LocationMatch /myURL> SetHandler wsi-handler
WSIのアプリケーションサーバ接続タイプを指定します。プールまたはノンプールになります。
詳細については、
Apache WSIの接続プールを参照してください。
次の手順に従って、WebサーバがWSIを使用できるようにします。
httpd.confファイルで、LoadModuleディレクティブを作成して、アプリケーションサーバに定義した最初のLocationMatchディレクティブのすぐ上に配置します。
LoadModuleディレクティブでオペレーティングシステムのmod_wsiを指定します。Windowsのディレクティブは次のようになります。
LoadModule wsi_module modules/mod_wsi.dll
他のディレクティブの使用 他のディレクティブを使用して、トレースログなどを管理できます。 WSI設定のカスタマイズおよび Apache WSIディレクティブリファレンスを参照してください。
すべてのディレクティブの詳細については、
Apache WSIディレクティブリファレンスを参照してください。
SilverServer.hostステートメントは、WebサーバからのURL要求を処理する移行先アプリケーションサーバ名を指定します。
次の1つまたは両方にアプリケーションサーバポート番号を指定します。
SilverServer.http.portステートメントは、移行先アプリケーションサーバの安全でないポートを指定します。
SilverServer.https.portステートメントは、移行先アプリケーションサーバの安全なポートを指定します。
IIS WebサーバがHTTPおよびHTTPSを実行している場合は、両方のプロトコルにポート設定を指定して、アプリケーションサーバも両方のプロトコルを実行していることを確認します。WSIは、一致するプロトコルを使用して、アプリケーションサーバに常に要求を転送します。
SilverServer.urlsステートメントは、アプリケーションサーバが提供するURLを指定します。複数のSilverServer.urlsステートメントを指定できます。URL形式については、 SilverServer.urlsを参照してください。
Microsoft IISにWSIファイルをインストールするの手順の Step 1で作成したルートディレクトリを指定します。
WSI.root.dirステートメントは、WSI DLLが実行されるディレクトリを指定します。
WSI.auth.NTLM.removeの説明に従って設定を指定します。
WSIルートディレクトリにAgWSI.confファイルを保存します。
注記: 複数アプリケーションサーバへの要求のリダイレクトをサポートするために、各セクションについて Step 2から Step 6を実行して、設定ファイルに異なるセクションを設定できます。詳細については、 複数アプリケーションサーバへの要求の送信を参照してください。
次の手順に従って、WebサーバがWSIを使用できるようにします。
編集したAgWSI.confファイルがWSIルートディレクトリ(C:\AgISAPIなど)にあることを確認します( Microsoft IISへのWSIファイルのインストールの Step 2の説明を参照)。
Windowsのコントロールパネルを使用して[World Wide Web Publishing Service]を開始し、[インターネットサービスマネージャ]を開きます。
Microsoft Webサーバ設定の詳細については、Microsoftのマニュアルを参照してください。
[新規作成]、[仮想ディレクトリ]の順に選択します。[仮想ディレクトリの作成ウィザード]が表示されます。
WSIモジュールが仮想ディレクトリを使用していない場合は、次の操作を実行します。
[ディレクトリ]タブで、[読み取り]および[書き込み]アクセス許可を無効にして、[実行アクセス権]が有効になっていることを確認します。
Step 9に進みます。
[仮想ディレクトリの作成ウィザード]で、仮想ディレクトリ名(AgISAPIなど)を入力して、[次へ]をクリックします。
WSIディレクトリをIISの物理ルートディレクトリにインストールした場合、このアクションは仮想ディレクトリを物理ディレクトリに結び付け、オプションです。仮想パスは、IIS Webルートディレクトリのサブディレクトリです。Webサーバと同じコンピュータ上にある場合、WSIはすべての物理ディレクトリにインストールできます。
IISはこの別名を使用して、WSI DLLを実行するディレクトリにアクセスします。この名前は、WSI.root.dir設定を定義するAgWSI.confファイルで使用した名前と一致する必要があります( AgWSI.confファイルリファレンスの説明を参照)。
WSIディレクトリの物理パス(C:\AgISAPIなど)を入力して、[次へ]をクリックします。
WSIディレクトリは、WSIモジュールをインストールした場所です。
選択する必要がある[実行アクセスを許可する(スクリプトを含む)]を除き、アクセス許可のチェックボックスをすべてオフにします。
作成したディレクトリが、MMCの左ペイン[既定のWebサイト]にあるWebサーバディレクトリリストに表示されていることを確認します。
[実行ファイル]フィールドで、agisapif.dllへの絶対パスを指定します。例: C:\AgISAPI\agisapif.dll
[既定のWebサイトのプロパティ]ダイアログボックスの[適用]をクリックします。
IISのWSIモジュールが[Filter Name]リストに表示されます。WSIの[フィルタ名]の左にある緑色の矢印は、フィルタが有効である(または有効でない)かどうかを示します。
Windowsのコントロールパネルを使用して、[World Wide Web Publishing Service]を停止してから再起動します。
WSIモジュールが動作していることを確認するには、ブラウザを開始して、AgWSI.conf ファイルで指定したURLに接続します。
WSIモジュールが正常に開始すると、AgWSI.logファイルの収集を開始します。
WSIが正常に開始しない場合は、エラーメッセージが表示されます。
SilverServer.hostステートメントは、WebサーバからのURL要求を処理する移行先アプリケーションサーバ名を指定します。
次の1つまたは両方にアプリケーションサーバポート番号を指定します。
SilverServer.http.portステートメントは、移行先アプリケーションサーバの安全でないポートを指定します。
SilverServer.https.portステートメントは、移行先アプリケーションサーバの安全なポートを指定します。
iPlanet WebサーバがHTTPおよびHTTPSを実行している場合は、両方のプロトコルにポート設定を指定して、アプリケーションサーバも両方のプロトコルを実行していることを確認します。WSIは、一致するプロトコルを使用して、アプリケーションサーバに常に要求を転送します。
SilverServer.urlsステートメントは、アプリケーションサーバが提供するURLを指定します。複数のSilverServer.urlsステートメントを指定できます。URL形式については、 SilverServer.urlsを参照してください。
WSIルートディレクトリにAgWSI.confファイルを保存します。
注記: 複数アプリケーションサーバへの要求のリダイレクトをサポートするために、各セクションについて Step 2から Step 6を実行して、設定ファイルに異なるセクションを設定できます。詳細については、 複数アプリケーションサーバへの要求の送信を参照してください。
これで、Webサーバを有効にできるようになります(次の説明を参照)。
iPlanetへのWSIモジュールの有効化 SunサーバでWSIモジュールを有効にするには、設定ファイルを編集する必要があります。
iPlanet 6.xでは、Sun Webサーバのmagnus.confファイルを開きます。
iPlanet 6.x以下のバージョンでは、Sun Webサーバのobj.confファイルを開きます。
[Init]セクションに進み、テキストの最初の2行を追加してモジュール名および場所を初期化します ( Step 3で2番目の行を追加します)。
この1行目は、WSIモジュールがロードされてサーバが機能を使用できることを確認する初期化機能を設定します。システムのWSIモジュール名およびパスを入力する必要があります。
WSIモジュール名として入力するものは、WSIモジュールがどのプラットフォームで実行されるかによって異なります。WSIモジュール名を指定するとき、システムのWSIモジュールへのパスを入力します(すべて1行に)。
Init fn="load-modules" shlib="WSI_module_name" funcs="AgNSAPIInit,AgNSAPINameTrans,AgNSAPIService"
[Init]セクション中に、テキストの2行目をすべて1つの行に入れて追加します。この行は、iPlanetサーバを開始したとき、WSIモジュールを初期化します。
iPlanetプラットフォーム |
テキストの行 |
---|---|
UNIX |
|
Windows |
|
iPlanetのすべてのバージョンで、obj.confを開き、[NameTrans]セクションに進み、[NameTrans]セクションの最初に次のものを追加します。
NameTrans fn="AgNSAPINameTrans"
この名前解釈コマンドは、サービスを提供するアプリケーションサーバにURLを送信し、要求されたURLが解釈されるかどうかを決定します。
Service fn="AgNSAPIService"
このサービスコマンドは、アプリケーションサーバに各要求を転送して、各着信要求に応答を返します(エコーします)。
Windowsで実行するWSIモジュールを指定するiPlanet 6.xの完全なmagnus.confおよびobj.confファイルを次に示します。追加する必要があるWSIエントリは、太字で表示されます。(6.x以下のバージョンでは、太字の項目はすべてobj.confにあります。)
#ServerRoot D:/iPlanet/Servers/https-richg ServerID https-richg ServerName richg ExtraPath D:/iPlanet/Servers/bin/https/bin;${NSES_JRE_RUNTIME_LIBPATH} ErrorLog D:/iPlanet/Servers/https-richg/logs/errors MtaHost name-of-mail-server DNS off Security off ClientLanguage en AdminLanguage en DefaultLanguage en RqThrottle 128 Init fn=flex-init access="$accesslog" format.access="%Ses->client.ip% - %Req->vars.auth-user% [%SYSDATE%] \"%Req->reqpb.clf-request%\" %Req->srvhdrs.clf-status% %Req->srvhdrs.content-length%" Init fn=load-types mime-types=mime.types Init fn="load-modules" shlib="D:/iPlanet/Servers/bin/https/bin/NSServletPlugin.dll" funcs="NSServletEarlyInit,NSServletLateInit,NSServletNameTrans,NSServletService" shlib_flags="(global|now)"Init fn="load-modules" shlib="d:/WSI/WinNT/agnsapi.dll" funcs="AgNSAPIInit,AgNSAPINameTrans,AgNSAPIService"
Init fn="NSServletEarlyInit" EarlyInit=yes Init fn="NSServletLateInit" LateInit=yesInit fn="AgNSAPIInit" LateInit="yes"
# パス名にはスラッシュのみ使用してください。円マークは問題を起こす # 可能性があります。詳細についてはマニュアルを参照してください。 <Object name=default>NameTrans fn="AgNSAPINameTrans"
NameTrans fn="NSServletNameTrans" name="servlet" NameTrans fn="pfx2dir" from="/servlet" dir="D:/iPlanet/Servers/docs/servlet" name="ServletByExt" NameTrans fn=pfx2dir from=/mc-icons dir="D:/iPlanet/Servers/ns-icons" name="es-internal" NameTrans fn="pfx2dir" from="/manual" dir="D:/iPlanet/Servers/manual/https" name="es-internal" NameTrans fn=document-root root="$docroot" PathCheck fn=nt-uri-clean PathCheck fn="check-acl" acl="default" PathCheck fn=find-pathinfo PathCheck fn=find-index index-names="index.html,home.html" ObjectType fn=type-by-extension ObjectType fn=force-type type=text/plainService fn="AgNSAPIService"
Service type="magnus-internal/jsp" fn="NSServletService" Service method=(GET|HEAD) type=magnus-internal/imagemap fn=imagemap Service method=(GET|HEAD) type=magnus-internal/directory fn=index-common Service method=(GET|HEAD|POST) type=*~magnus-internal/* fn=send-file AddLog fn=flex-log name="access" </Object> <Object name=cgi> ObjectType fn=force-type type=magnus-internal/cgi Service fn=send-cgi </Object> <Object name="servlet"> ObjectType fn=force-type type=text/html Service fn="NSServletService" </Object> <Object name="jsp092"> ObjectType fn="type-by-extension" ObjectType fn="change-type" type="magnus-internal/jsp092" if-type="magnus-internal/jsp" Service fn="NSServletService" type="magnus-internal/jsp092" </Object> <Object name="ServletByExt"> ObjectType fn=force-type type=magnus-internal/servlet Service type="magnus-internal/servlet" fn="NSServletService" </Object> <Object name="es-internal"> PathCheck fn="check-acl" acl="es-internal" </Object>
ここまでの節では、WSIモジュールに基本的設定を作成する方法について説明しました。この節では、使用できる追加ディレクティブについて説明します。次の情報を含みます。
WSIモジュールでは、異なるアプリケーションサーバに異なるクライアント要求を送信できます。
Apache WSIの異なるアプリケーションサーバに異なるクライアント要求を送信するには、複数の[LocationMatch]セクションを定義します。各[LocationMatch]セクションは、要求を定義するディレクティブおよび要求がリダイレクトされるアプリケーションサーバを含みます。例:
<LocationMatch URL1> WSIHost host1 WSIPort port1 </LocationMatch> <LocationMatch URL2> WSIHost host2 WSIPort port2 </LocationMatch>
URL1で始まるすべてのURLは、host1:port1に送信されます。URL2で始まるすべてのURLは、host2:port2に送信されます。
IISまたはiPlanet WSIの異なるアプリケーションサーバに異なるクライアント要求を送信するには、AgWSI.confファイルの複数のセクションを定義します。各設定セクションには、SECTIONステートメントのラベルが付けられ、どの要求がどのアプリケーションサーバにリダイレクトされるかを指定するステートメントが含まれます。各セクションは、 AgWSI.confファイルリファレンスに必須としてリストされているすべてのステートメントを含む必要があります。
さらに、Webサーバは複数のホスト名をホストするマルチホームであることが必要です。WSI.hostステートメントを使用して、ホスト名(およびオプションのポート)に基づいて要求を転送するようにWSIを設定できます。セクションにWSI.hostステートメントがない場合、要求のホストヘッダは無視され、一致するURLのみがフィルタとして使用されます。詳細については、 WSI.hostを参照してください。
Webサーバへの各着信要求について、WSIは要求ヘッダ(WSI.hostにより指定されている場合)のホスト名とポートおよび要求のURLに基づいて一致するものを見つけるまで、すべての設定セクションを検索します。要求は、そのセクションで指定されたアプリケーションサーバに転送されます。
次の設定ファイルは、2つの異なるWebサーバホスト名を指定して2つの異なるアプリケーションサーバに要求を送信する3つのセクションを持ちます。サンプルは、安全な(HTTPS)接続を介してのみ指定されたURLにアクセスできるようにWSIを設定する方法も示します。
SECTION=WWW_ABC_COM # www.abc.comのすべてのURLをserv1.myco.comにリダイレクトします # HTTP要求はアプリケーションサーバのポート80に転送されます # HTTPS要求はアプリケーションサーバのポート443に転送されます WSI.host=www.abc.com WSI.root.dir=/AgISAPI SilverServer.host=serv1.myco.com SilverServer.http.port=80 SilverServer.https.port=443 SilverServer.urls=/ Connection.http.max=100 Connection.https.max=100 Connection.idle.time=25 SECTION=WWW_XYZ_COM_SECURE # www.xyz.comの/db1/approot/secureで始まるURLを # serv2.myco.comにリダイレクトします # HTTPS(安全なポート)からのみ(SilverServer.http.ポートは0に設定されます) WSI.host=www.xyz.com WSI.root.dir=/AgISAPI SilverServer.host=serv2.myco.com SilverServer.http.port=0 SilverServer.https.port=443 SilverServer.urls=/db1/approot/secure Connection.http.max=100 Connection.https.max=100 Connection.idle.time=25 SECTION=WWW_XYZ_COM_HTTP # www.xyz.comの他のすべてのURLをあらゆるポートの # serv2.myco.comにリダイレクトします WSI.host=www.xyz.com WSI.root.dir=/AgISAPI SilverServer.host=serv2.myco.com SilverServer.http.port=80 SilverServer.https.port=443 SilverServer.urls=/ Connection.http.max=100 Connection.https.max=100 Connection.idle.time=25
WSIモジュールは、接続プールを使用して応答時間を向上させます。Webサーバに接続される各クライアントにアプリケーションサーバへの接続を作成および管理する代わりに、WSIはアプリケーションサーバへの接続を複数クライアントの接続に再使用します。WSIは、同時リクエスト処理の必要に応じて、アプリケーションサーバに新しい接続を開きます。
nonpooled接続を使用するApache WSIの基本設定で、WSIは各要求に新しい接続を作成し、要求を実行した後サーバから切断します。アプリケーションサーバのホスト( WSIHost)およびアプリケーションサーバポートのディレクティブ(HTTP要求には WSIPortまたはHTTPS要求にはWSISslPort)を指定します。nonpooled接続のLocationMatchディレクティブは次のようになります。
<LocationMatch /myApp> SetHandler wsi-handler WSIHost alaska WSIPort 10080 WSISslPort 10043 </LocationMatch>
接続プールを定義すると、WSIは各要求について接続プールから接続を得て、要求を実行してからプールに接続を返します。WSIは、接続を作成して閉じる際のオーバーヘッドを省きます。
接続プールを定義するには、WSIConnectionPoolコンテナ要素を使用して接続プール属性を指定してから、LocationMatchディレクティブ内で接続プール名を指定します( WSIConnectionPool)。
まず、WSIConnectionPoolコンテナを作成する必要があります(対応するLocationMatchコンテナの直前)。例:
<WSIConnectionPool cp01> WSIHost alaska WSIPort 10080 WSISslPort 10443 WSIMaxConns 100 WSIMaxSslConn 50 </WSIConnectionPool> <LocationMatch /SilverStream40> SetHandler wsi-handler WSIConnPoolName cp01 </LocationMatch>
WSIIdleTimeoutディレクティブを使用して、接続プールの接続にアイドルタイムアウトを指定できます。指定しない場合、アイドルタイムアウトは10分に設定されます。WSIは、WSICleanupIntervalディレクティブに指定された間隔で、アイドル接続をチェックします。ディレクティブは接続プールごとにあり、指定されない場合はデフォルト値を持ちます。
IISおよびiPlanet WSIモジュールは、HTTPおよびHTTPSプロトコルに個別の接続プールを維持します。接続プールがシステムリソースを使いすぎていないことを確認するために、WSIは定期的にプールをスキャンして、スキャンサイクル間に使用されなかった接続を閉じます。
状況 |
説明 |
---|---|
Connected |
接続中でアクティブです |
Inactive |
接続され、時間制限が切れていません |
Idle |
アクティブでなく、アイドル制限が切れています |
Not connected |
— |
接続されているが使用されていない接続を見つけるため、WSIは定期的にバックグランドスレッドを実行して、接続プールの非アクティブおよびアイドル接続をチェックします。WSIスレッドは、すべての非アクティブなスレッドにアイドルのマークを付け、既にアイドルとしてマークされた接続を閉じます。アイドルとしてマークされると、接続は設定したアイドル時間制限(またはデフォルトの25分)に基づいて閉じられます。間隔は、接続が作成されたときではなく、WSIモジュールがロードされたときに開始します。
接続は、切断される前に2つのスキャンサイクルの間非アクティブのままであることが必要です。たとえば、指定された接続アイドル時間制限が15分に設定されている場合、非アクティブ接続は、非アクティブになってから15分から30分の間に切断されます(既存間隔の途中でWSIがプールを開始することがあるため)。スキャンサイクルの間隔中にアイドル接続が使用された場合、接続は非アクティブとマークされて接続プールに戻ります。
AgWSI.confファイルの3つのディレクティブを使用して、接続プール値を指定できます。Connection.http.max、Connection.https.max、および Connection.idle.time。
さまざまなサーバプラットフォーム、アーキテクチャ、およびサードパーティセキュリティプロバイダがあるため、WSIを使用する際には、セキュリティ上の考慮事項に注意してください。
Microsoft Windows NT LAN Manager (NTLM)認証を使用してWebサイトを保護すると、WSIのデフォルトヘッダ設定が機能しなくなります。着信要求の認証後、IISは各要求にNTLM HTTP認証ヘッダを追加します。NTLM HTTP認証ヘッダはアプリケーションサーバにサポートされていないため、次のいずれかの方法でIISのWSIモジュールを設定しない限り、着信要求は拒否されます。
アプリケーションサーバに送られたすべての要求から、NTLM HTTP認証ヘッダを削除します。NTLMヘッダが削除されると、AgWSI.confファイルのWSI.auth.NTLM.removeをtrueに設定することで、アプリケーションサーバにユーザの要求を正常に転送できます。詳細については、 WSI.auth.NTLM.removeを参照してください。
AgWSIUserは、WSIユーザおよびパスワードを定義するためにAgWSI.confで必要なWSI.auth.userステートメントを生成するコマンドラインユーティリティです。AgWSIUserユーティリティは、WSIが読み取れる形式でユーザ名およびパスワードを暗号化します。
詳細については、
WSI.auth.userを参照してください。
AgWSIUser username password
パスワードが空白の場合は、ユーザ名のみ入力します。あらゆる有効なユーザを入力できます。例: NTアカウント情報を使用するには、次の操作を実行します。
AgWSIUser myNTDomain\myNTUser myNTPassword
AgWSIUserユーティリティは、対応するWSI.auth.userステートメントをコマンドウィンドウに出力します。
生成されたステートメントをAgWSI.confファイルの適切なセクションに貼り付けます (セクションを使用していない場合は、ファイルの他の場所に貼り付けます)。
起動時に、WSIモジュールはユーザ名およびパスワードを解読して、アプリケーションサーバに転送する各要求に追加するHTTP認証ヘッダを生成します。
AgWSI.confファイルリファレンス(IISおよびiPlanet設定用)
この節では各設定について説明し、必要な設定を指定して、デフォルトおよび例を示します。設定は次のレベルで適用できます。
レベルでの設定 |
適用先 |
httpd.confファイルを指定する場所 |
---|---|---|
Server-wide |
httpd.confファイルで定義されたすべてのアプリケーションサーバ |
グローバルセクション |
Single server |
単一のアプリケーションサーバ |
すべてのセクション |
Directory |
単一アプリケーションサーバの単一ディレクトリ |
LocationMatchディレクティブ |
説明
必須。ディレクトリ設定ごと。LocationMatchディレクティブコンテナに配置することが必要です。
LocationMatchディレクティブに一致するすべてのURLをWSIモジュールが処理することをApacheに通知します。
例
SetHandler wsi-handler
説明
オプション。接続プール設定ごと。WSIConnectionPoolコンテナに配置することが必要です。
WSIモジュールが接続プールでアイドル接続を探す間隔(秒)を定義します。アイドルタイムアウト値を超えてアイドルになっている接続は、切断されます。
デフォルト
説明
指名された接続プールをコンテンツが定義するコンテナディレクティブ。デフォルトの指名接続プール名はcp01です。同じhttpd.confファイルで複数の接続プールを定義できます。
例
<WSIConnectionPool cp01> . . . </WSIConnectionPool>
説明
オプション。LocationMatchコンテナにあることが必要です。
LocationMatchディレクティブに一致するすべてのURLは、指名された接続プールを使用して処理する必要があることをWSIモジュールに知らせます。提供されない場合、WSIはプールされた接続を使用して要求を処理しません。
WSIConnectionPoolディレクティブコンテナを使用して定義した接続プール名に一致する必要があります。
例
<LocationMatch /myApp> SetHandler wsi-handler WSIConnPoolName cp01 </LocationMatch>
説明
接続プールの作成に必要です。接続プールを使用しない場合は、LocationMatchコンテナにあることが必要です。
アプリケーションサーバが実行されているホスト名またはIPアドレスを指定します。
接続プールが( WSIConnectionPoolディレクティブを使用して)同じLocationMatchディレクティブコンテナに既に定義されている場合、このディレクティブは無視されます。
デフォルト
例
WSIHost alaska.novell.com
説明
アプリケーションサーバへのSSLおよび非SSL接続に、最大アイドル時間(秒)を指定します。
デフォルト
例
WSIIdleTimout 450
説明
デフォルト
例
WSIMaxConns 35
説明
デフォルト
例
WSIMaxSslConns 35
説明
接続プールを定義する場合に必要です。接続プールが指定されない場合は、ディレクトリごと。
アプリケーションサーバのHTTPポートを指定します。接続プールが( WSIConnectionPoolディレクティブを使用して)同じLocationMatchディレクティブコンテナに既に定義されている場合、このディレクティブは無視されます。
デフォルト
例
WSIPort 10800
説明
接続プールを定義する場合に必要です。接続プールが指定されない場合は、ディレクトリごと。
アプリケーションサーバのHTTPSポートを指定します。接続プールが( WSIConnectionPoolディレクティブを使用して)同じLocationMatchディレクティブコンテナに既に定義されている場合、このディレクティブは無視されます。
デフォルト
例
WSISslPort 10443
説明
WSIモジュールのトレースレベルを指定します。値が高いほど詳細なトレース情報を生成します。WSIモジュールは、高いデバッグレベルに設定されると、大量のトレース情報を生成できます。一般に、特別の理由がない限り、トレースレベルは3より高く設定しないでください。有効な設定は次のとおりです。
レベル |
トレースイベント |
説明 |
---|---|---|
0 |
CRIT |
致命的故障 |
1 |
ERROR |
エラー |
2 |
WARNING |
警告 |
3 |
INFO |
情報メッセージ |
4 |
DEBUG |
第1レベルデバッグ |
5 |
DEEP |
第2レベルデバッグ |
6 |
DEEPER |
第3レベルデバッグ |
7 |
DEEPEST |
第4レベルデバッグ |
デフォルト
データタイプ
例
WSITraceLevel 6
説明
WSIモジュールがトレース出力ファイルにどのようにトレース情報を書き込むかを決定します。有効な値は次のとおりです。
値 |
説明 |
---|---|
per-process |
各Apacheプロセスは、wsi.pxxxx.out (xxxxxはプロセスID)という名前の WSITraceOutputDirectoryで作成された独自のWSIトレース出力ファイルを持ちます。 |
per-request |
WSIモジュールで処理された各要求に、新しいWSIトレース出力ファイルが作成されます。出力ファイルは、"wsi.pxxxxx.ryyyyy.out" (xxxxxはプロセスID、およびyyyyyは要求番号)という名前のWSITraceOutputDirectoryで作成されます。 |
デフォルト
例
WSITraceMode per-process
説明
WSIトレースイベントのモジュール最大幅または関数名を指定します。
デフォルト
例
WSITraceModuleWidth 20
説明
WSIがトレースファイルを作成するファイルシステムディレクトリを指定します。
指定した場合、Apacheプロセスに与えられた書き込み許可を持つ既存ディレクトリに一致する必要があります。
デフォルト
オペレーティングシステム |
デフォルト |
---|---|
NetWare |
sys:/tmp |
UNIX |
/tmp |
Windows |
c:\temp |
説明
WSIトレースにリストされるトレースイベント名の形式を指定します。
値はonまたはoffです。onに設定すると、WSIトレースイベントに表示されるモジュールまたは関数名にスペースが当てられます。この形式により、トレース記録が同じ列に並ぶため、トレースファイルが読み取りやすく(ただし大きく)なります。
デフォルト
説明
値はonまたはoffです。onに設定すると、WSIトレースイベントにタイムスタンプが含まれます。
デフォルト
説明
接続プール監視機能の反復間隔(秒)を指定します。監視機能は、接続プールに関する情報を WSITraceOutputDirectoryにあるトレースファイルに出力します。
デフォルト
説明
LocationMatchディレクティブで指定されたURLフラグメントに置き換えられる関連URLを指定します。
例
<LocationMatch /foo> SetHandler wsi-handler WSIUrl /bar </LocationMatch>
http://foo/whatever_followsの形式を持つURLへの要求は、http://bar/whatever_followsとしてWSIモジュールに処理されます。
このディレクティブが指定されないと、URL置換は実行されません。
この節では各設定について説明し、必要な設定を指定して、デフォルトおよび例を示します。
説明
Connection.http.maxは、WSIおよびアプリケーションサーバ間の安全でないHTTP同時接続の最大数です。
使用法
WSI.error.urlファイルを作成して指定した場合、接続プール制限を超えるとユーザは通知されます。WSIは、アプリケーションサーバとの間でソケット接続を再使用します。
デフォルト
Connection.http.max=100
説明
Connection.https.maxは、WSIおよびアプリケーションサーバ間の安全なHTTPS同時接続の最大数です。
使用法
WSI.error.urlファイルを作成して指定した場合、接続プール制限を超えるとユーザは通知されます。WSIは、アプリケーションサーバとの間でソケット接続を再使用します。
デフォルト
Connection.https.max=100
説明
Connection.idle.timeは、WSIがアイドル接続について接続プールをスキャンする頻度(分)を指定します。
デフォルト
Connection.idle.time=25
説明
SECTIONは設定セクションを指名します。各セクションは、アプリケーションサーバによるWeb要求セットの処理を指定するステートメントを含みます。Webサーバが異なるアプリケーションサーバに異なる要求を転送する場合は、設定ファイルの複数のセクションを使用します。
使用法
各セクションは、すべての必要な設定を定義する必要があります。セクションでオプション設定が定義されない場合は、デフォルト値が与えられます(他のセクションで定義した値ではありません)。
形式
SECTION=label
例
SECTION=abc_com SECTION=xyz_com
詳細な情報
設定セクション使用の詳細については、 複数アプリケーションサーバへの要求の送信を参照してください。
説明
SilverServer.hostステートメントは、WebサーバからのURL要求を処理する移行先アプリケーションサーバ名です。
例
SilverServer.host=mysssw.myco.com
説明
アプリケーションサーバのHTTPポートがオペレーティングシステムのデフォルトポート番号を使用していない場合は、必要です。
SilverServer.http.portは、移行先アプリケーションサーバの安全でないポートを指定します。値0を使用して、WSIが安全でないポートで着信する要求を転送しないように指定します。
デフォルト
SilverServer.http.port=80
説明
アプリケーションサーバのHTTPSポートがデフォルトポート番号(443)を使用していない場合は、必要です。
SilverServer.https.portは、移行先アプリケーションサーバの安全なポートを指定します。値0を使用して、WSIが安全なポートで着信する要求を転送しないように指定します。
デフォルト
SilverServer.https.port=443
説明
SilverServer.urlsは、アプリケーションサーバに転送されるURLを指定します。アプリケーションサーバに転送する各URLルートに、新しい設定を指定する必要があります。
形式
次の2つの形式があります。 Simple URL forwardingおよび 解釈を伴うURLの転送(マスキング)。
SilverServer.urls=<Root_URL_to_Forward>
SilverServer.urls=/myco SilverServer.urls=/myDb
前の例で、/mycoまたは/myDbで始まるすべてのURLは、アプリケーションサーバに転送されます。次のものが含まれます。
http://myWebServer/myco/Sessions http://myWebServer/myco/Pages http://myWebServer/myDb/myco/Pages/MyPage.html
すべてのURLをアプリケーションサーバに転送するには、次のものを指定します。
SilverServer.urls=/
SilverServer.urls=<URL_root_at_Web_server>=<translated_URL_root>
SilverServer.urls=/Pages=/myDb/myco/Pages
最初のURLは、2番目のURLが置き換えられてからアプリケーションサーバに転送されます。この例で、/Pagesで始まるWebサーバからのすべてのURLは、/Pagesが/myDb/myco/Pagesで置き換えられたアプリケーションサーバに転送されます。次のものとしてWebサーバに送られるURLは
http://myWebServer/Pages/MyPage.html
http://mySilverServer/myDb/myco/Pages/MyPage.html
説明
WSI.auth.echoがtrueに設定されている場合、Webサーバに送られた要求がHTTP認証ヘッダを含むと、WSIはヘッダ値にエコーするアプリケーションサーバにHTTPヘッダ(x-agwsi-Authorizationto)を送ります。
ユーザログインがWSI.auth.userコマンドでマスクされているとき、この設定により、アプリケーションサーバはユーザログイン情報を取得できます。たとえば、サードパーティ製品が認証および認証サービスを実行している場合、WSI.autho.echo設定により、アプリケーションはアプリケーションにログインして要求を開始したユーザの名前を取得できます。
形式
x-agwsi-Authorization: Basic Base64EncodedUserName/Password
デフォルト
WSI.auth.echo=false
使用法
アプリケーションサーバはAgiHttpServletRequest APIを使用して、認証ヘッダを取得します。
説明
NT認証がIISディレクトリに有効になっている場合は、WSI.auth.NTLM.removeをtrueに設定します。値をtrueに設定するとNTLM認証ヘッダが削除され、ユーザの要求をアプリケーションサーバに正常に転送できます。詳細については、 WSIモジュールでのIIS NTLM認証の使用を参照してください。
デフォルト
WSI.auth.NTLM.remove=false
説明
WSI.auth.userが指定されると、WSIモジュールはアプリケーションサーバに転送される認証ヘッダを傍受して、単一の既知ユーザのアカウント情報で置き換えます。アプリケーションサーバに転送する各要求にHTTP認証ヘッダを追加します。WSIへの着信要求の既存認証ヘッダは、認証設定で置き換えられます。
使用法
認証設定のセキュリティを保護するため、ユーザ名およびパスワードはクリアテキストでAgWSI.confファイルに保存しません。AgWSIUserユーティリティを実行して、ユーザ名およびパスワードを表すためにAgWSI.confで必要なWSI.auth.userステートメントを生成する必要があります。AgWSIUserユーティリティは、WSIが読み取れる形式でユーザ名およびパスワードを暗号化します。
説明
WSI.debugはWSIログインレベルを指定します。WSIモジュールディレクトリに保存されたAgWSI.logファイルへのWSIログ。
使用法
レベル |
ログされる情報 |
---|---|
0 |
なし |
1 |
各要求方法、URL、および正常に処理されたかどうか WSIモジュールおよびアプリケーションサーバ間接続のエラー 接続プールクリーンアップメッセージ |
2 |
Level 1 information plus: |
3 |
Level 2 information plus: |
移行先サーバに着信したURLをログするには、SMCを使用して、アプリケーションサーバデバッグ値を1または2に設定します。詳細については、 低レベルのデバッグを参照してください。
デフォルト
WSI.debug=0
説明
WSI.error.urlは、WSI接続エラーが発生したときにユーザに表示されるカスタマイズしたエラーページを指定します。WSIエラーURLを作成および指定しない場合、WSIモジュールがアプリケーションサーバに接続できないときにユーザには一般ブラウザ通知が表示されます。
使用法
ユーザに問題を知らせ、URL接続を後で再試行するよう指示するHTMLファイルの作成をお勧めします。
WSIエラーファイル名およびWebサーバでの場所を指定します。WSIはWebサーバのこのページにブラウザをリダイレクトするため、エラーページファイルはWebサーバのディレクトリ構造に配置する必要があります。
デフォルト
WSI.error.url=\myerror.html
説明
WSI.hostはHTTPホストヘッダを指定して、一致するURLがアプリケーションサーバに転送されるときにフィルタします。このステートメントが指定されない場合、要求のホストヘッダは無視され、一致するURLのみがフィルタとして使用されます。
使用法
Webサーバが複数の個別ホスト名をホストし、WSIが要求ホスト名に基づいて異なるアプリケーションサーバにURLを転送する必要がある場合、マルチホームのWebサーバ設定にこの設定を使用します。WSI.host設定は、ホスト名のみまたはホスト名およびポート番号を指定できます。ポート番号が指定されない場合、WSIはホスト名が一致することを条件として、要求のホストヘッダのあらゆるポート番号を受け入れます。
例
WSI.host=www.abc.com WSI.host=www.abc.com:8080
詳細な情報
このステートメントのサンプル使用については、 複数アプリケーションサーバへの要求の送信を参照してください。
説明
WSI.root.dirは、WSIモジュールが実行されるWSI仮想ディレクトリです。IISのWSIはフィルタおよび拡張であるため、IIS Webルート(/wwwroot)ディレクトリ構造でWSIのURLを指定する必要があります。
使用法
IIS Webルートディレクトリから表示できるディレクトリに、IISのWSIモジュールをインストールする必要があります。Webルートの下の物理ディレクトリにWSIをインストールすると、WSIはIIS内から自動的に表示されます。IISルートディレクトリ外のディレクトリにWSIモジュールをインストールする場合は、IISディレクトリにWSIが表示されるように、MMCを使用して仮想ディレクトリを作成する必要があります。
Webサーバのルートディレクトリに対してWSI.roog.dirを設定する必要があります。
例
Webルートの下の物理ディレクトリであるC:\Inetpub\wwwroot\agisapiにWSIをインストールしている場合は、WSI.root.dir=/agisapiを指定します。
C:\WSIなどの仮想ディレクトリにWSIをインストールしている場合は、MMCを使用して、C:\WSIにマップする/agisapiなどの仮想ディレクトリを作成してから、WSI.root.dir=/agisapiを指定します。
デフォルト
WSI.root.dir=/agisapi
![]() ![]() ![]() ![]() ![]() |
管理ガイド 05/21/03 10:02:24 |
Copyright © 1997, 1998, 1999, 2000, 2001, 2002, 2003 SilverStream Software, LLC, a wholly owned subsidiary of Novell, Inc. All rights reserved.