リモート Web サーバで Caché サーバ・ページを使用する方法
この付録では、リモート Web サーバで CSP を使用した以下の構成について説明します。
Web サーバと CSP ゲートウェイの構成
この節では、Web サーバおよび CSP ゲートウェイを設定して、リモート Caché サーバにインストールされた CSP アプリケーションにアクセスする方法について説明します。この手順では、Web サーバを Machine W、Caché を実行しているコンピュータを Machine C と呼びます。設定は以下の手順から構成されます。
Web サーバ・マシンへの Cach ゲートウェイのインストール
IIS または Apache が実行中の Web サーバ・マシン (Machine W) に CSP ゲートウェイをインストールします。詳細は、"Caché インストール・ガイド" の “Web サーバ (CSP) ゲートウェイのインストール” の節を参照してください。インストール中は、以下の指示に従ってください。
-
[セットアップ・タイプ] ダイアログ・ボックスで、[Web サーバ] を選択し、[次へ] を選択します。
-
インストール名、インストール・タイプおよびインストール先ディレクトリを確認し、正しければ [インストール] を選択します。
これによって、Machine W に CSP ディレクトリ構造が生成され、/CSP ファイルおよび /CSP/Bin ファイルへの仮想ディレクトリ参照が生成されます。
CSP ゲートウェイの構成
次に、Machine W の CSP ゲートウェイ構成を調整します。CSP ゲートウェイ構成情報は csp.ini ファイルに保存されていますが、常に Caché Server Pages ウェブゲートウェイ管理アプリケーションを使用して、構成を更新します。
-
ブラウザで以下を指定し、CSP [ウェブゲートウェイ管理] ホーム・ページに移動します。
http://localhost/csp/bin/Systems/Module.cxwOpens in a new tab
(この URI をお気に入りに登録しておくと便利です)。このリンクは、外部 Web サーバ用です。Caché が提供するプライベート Web サーバ用ではありません。
上記のリンクは、Web サーバがポート 80 を使用して動作しているシステムと同じシステム上で作業している場合には正しいです。あるシステム (リモート・システム) から別のシステム (ローカル・システム) 上の CSP [ウェブゲートウェイ管理] ホーム・ページにアクセスしようとしている場合、既定ではアクセスを拒否されます。以下の 2 つのうちのいずれかの方法でリモート・システムからホーム・ページにアクセスできます。1) ローカル・システム上のホーム・ページに接続し、[システム・マネージャ] フィールド ([デフォルトパラメータ] の下) をリモート・システムの IP アドレスに設定します。または 2) ローカル・システムの csp.ini ファイルを編集し、行 System_Manager=remote-system-ip-address を追加します。
-
左側のメニューで [サーバ接続] を選択します。Caché のインストールでは、ローカル・マシン (Machine W) の Caché インスタンスに接続するように LOCAL サーバが構成されます。
-
リモート・マシン上で動作している Caché インスタンスを表す新しいサーバ (Machine C) を作成します。
-
[サーバ追加] を選択します。
-
サーバの名前を入力します (例えば、Machine C)。
-
Machine C 上のリモート Caché サーバの [TCP/IP アドレス] および [TCP/IPポート] を入力します。
-
CSP ゲートウェイ接続を確立するために Machine C が必要とする認証のレベルに合うように、[接続セキュリティ] 設定を変更します。詳細は、このガイドの "CSP ゲートウェイとセキュリティ" の節を参照してください。
-
[設定を保存] を選択します。
-
-
左側のメニューで [アプリケーションアクセス] を選択して、リモート Caché サーバ (Machine C) 上の CSP アプリケーションへのパスを Machine C 用に以前作成したサーバ構成と関連付けます。既定のパスは / および /csp に事前定義されています。
-
リモート・マシン (Machine C) 上で動作している CSP アプリケーションを表す新しいアプリケーション・パスを作成します。既存の構成 (/csp など) をコピーするか、または [アプリケーション追加] を選択し、新しいパス構成を手動で作成できます。アプリケーション用に作成するパスは、Machine C 上の Caché インスタンスにあるアプリケーション用に定義したものと一致する必要があります。
例えば、管理ポータルへの既定のパスは /csp/sys です。新しいアプリケーションを作成している場合、独自のパス名を選択します。例えば、/myapp や /csp/myapp です。新しいパスを作成したら、Machine C 用に以前設定した Caché サーバ構成の値になるように、パスの [デフォルトサーバ] パラメータを変更します。
-
最後に、新しいパス構成を保存します。
Web サーバから静的ファイルを提供する場合
Web サーバから静的ファイルを提供することを計画している場合、Machine W 上にアプリケーション・パスを表すディレクトリを作成します。これらのディレクトリは、イメージ・ファイルなどの静的コンテンツを保持するためにのみ存在します。すべての CSP ファイルをここに配置する必要はありません。これらは Machine C 上にあります。
Machine W のディレクトリ install-dir\CSP の下に、\Samples ディレクトリおよび \User ディレクトリを作成します。また、CSP ページで参照される静的コンポーネントを含むことができる、その他のパスを表すディレクトリを作成します。前の節の例では、\myapp のディレクトリを作成する必要があります。
Web サーバ・パスの構成
前の手順のアプリケーション・パスは、対応する場所にある CSP ページの要求に対応します。以下はその例です。
http://domain.com/myapp/login.csp http://domain.com/csp/myapp/login.csp http://domain.com/csp/sys/login.csp
継承は階層的に適用されます。以下の要求を考えてみます。
http://domain.com/csp/newapp/login.csp
/csp/newapp のアプリケーション・パス構成がある場合、これが使用されます。存在しない場合、代わりに /csp 用に定義される構成が使用されます。
CSP ゲートウェイ・インストール手順では、ホスト Web サーバが構成され、/csp 仮想パスを認識します。通常、これらの同じ設定は、/csp の下にあるディレクトリ (/csp/myapp など) にも適用されます。
新しいパス (例えば、最初の例では /myapp) を作成する場合、Web サーバを構成して、この新しい仮想パスを認識する必要があります。これらの手順は、使用する Web サーバに応じて異なります。使用中の Web サーバに適用するセクションの手順に従います。
IIS への仮想ディレクトリの追加
CSP ゲートウェイのインストール手順では、CSP アプリケーション用に仮想ディレクトリ /csp が構成されます。使用中のすべてのアプリケーションがこの仮想ディレクトリの下 (例えば /csp/myapp) にあり、仮想ホストを使用していない場合、仮想ディレクトリを追加する必要はありません。この節の手順は、具体的には IIS (Internet Information Services) バージョン 6 および 7 の Web サーバに適用されます。
前の例の /myapp に似たアプリケーション・パスおよび CSP ゲートウェイのインストール中に自動的に作成される /csp 仮想ディレクトリに似たプロパティを設定します。
-
[インターネット インフォメーション サービス] 管理ダイアログ・ボックスに移動します。これは、通常、Windows の [コントロール パネル] の [管理ツール] メニューからアクセスできます。
-
フォルダを展開し、[既定の Web サイト] を右クリックします。
-
[新規作成] を指定して [仮想ディレクトリ] を選択し、以下の値を指定して新しいディレクトリ・レコードを作成します。
Alias: myapp Directory: C:\cache-install-dir\csp\myapp Access Permissions: Select the Execute check box (on IIS 6 only)
-
[保存] と [適用] を選択してすべての変更を適用するか、またはウィザードを使用している場合、[完了] を選択します。
IIS 6 では、以下のように確認できます。[既定の Web サイト] で仮想ディレクトリ名を右クリックし、[プロパティ] を選択します。以下の図のようになります。
IIS を再起動して変更内容を適用します。
Apache 構成へのエイリアスの追加
Apache Web サーバを使用してリモート Caché サーバを制御していて、アプリケーション・パスが /csp の既定から変更されている場合、ローカル CSP ディレクトリを指す Apache 構成ファイルに対応するエイリアスを手動で追加する必要があります。
例えば、Web サーバで定義されたアプリケーション・パス (/myapp/csp) から Machine C の Caché インスタンスの cache-install-dir に CSP アプリケーションをリモートで提供するには、以下のエイリアス行を Machine W の httpd.conf ファイルに追加します。
Alias /myapp/csp "C:/cache-install-dir/CSP"
Apache Web サーバを再起動して変更内容を適用します。
複数の Caché サーバでの CSP へのアクセス
1 つの Web サーバを構成して、複数の Caché サーバ上で 1 つの CSP アプリケーションにアクセスする必要がある場合、このセクションを参照してください。これは、多くの場合、クラスタ化された環境に多数の Caché インスタンスが含まれている OpenVMS ベースの Caché インストールで当てはまります。1 つの Web サーバを使用して、複数のリモート Caché サーバ上で 1 つの CSP アプリケーションにアクセスする必要がある場合にも、このセクションを参照してください。
このセクションでは、アプリケーションの例として管理ポータルを使用します。以下の手順を独自の CSP アプリケーションに当てはめてください。
管理ポータル・アプリケーションは、通常、以下の形式の URL で呼び出されます。
http://domain.com/csp/sys/UtilHome.csp
以下の説明に従ってアプリケーションを構成したら、さまざまなサーバ (サーバ cache1、cache2 など) でこのアプリケーションにアクセスするには、以下のように個々の Caché サーバ名を URL の一部に含めます。
http://domain.com/cache1/csp/sys/UtilHome.csp http://domain.com/cache2/csp/sys/UtilHome.csp
アプリケーション・パスの URL に Caché サーバ名を表示するかどうかを選択できます。URL に Caché サーバ名を使用する場合、このサブセクションをスキップして次のサブセクション “アプリケーション・パス用の Caché サーバの構成” に進んでください。
Caché サーバ名を CSP アプリケーションの URL に表示しない場合、このサブセクションの手順に従って、代わりの名前を作成します。
これらのサーバそれぞれに対して %System.CSP.SetConfigOpens in a new tab メソッドの CSPConfigName パラメータを使用します。この例では、サーバ cache1 の代わりの名前として linda、サーバ cache2 の代わりの名前として perry を使用します。使独自のサーバおよび代わりの名前を使用してこの例に従ってください。
cache1 サーバのターミナル・ウィンドウで、以下のプログラムを実行します。
d $System.CSP.SetConfig("CSPConfigName","linda")
cache2 サーバのターミナル・ウィンドウで、以下のプログラムを実行します。
d $System.CSP.SetConfig("CSPConfigName","perry")
-
cache1 で、以下の CSP ゲートウェイ管理ページにアクセスします。
http://localhost/csp/bin/Systems/Module.cxwOpens in a new tab
-
[サーバ接続] を選択します。cache1 および cache2 のサーバ構成を追加します。詳細は、“サーバ・アクセスの構成” を参照してください。
-
[アプリケーション・アクセス] を選択します。cache1 の [デフォルトサーバ] を使用して、アプリケーション・パス /linda/csp/sys/ を作成します。cache2 の [デフォルトサーバ] を使用して、アプリケーション・パス /perry/csp/sys/ を作成します。詳細は、“アプリケーション・アクセスの構成” を参照してください。
-
Web サーバが IIS の場合、/cache1 と /cache2 の仮想ディレクトリを設定します ("IIS への仮想ディレクトリの追加" の節を参照)。
Apache Web サーバを使用している場合、"Apache 構成へのエイリアスの追加" を参照してください。
他の CSP グローバル・パラメータを確認するには、%SYS>d $system.CSP.DisplayConfig() と入力します。
URL に Caché サーバ名を使用する場合、以下の手順に従います。Caché サーバ名を CSP アプリケーションの URL に表示しない場合、前のサブセクション “URL に Caché サーバ名を表示しない方法” の手順に従ってください。
-
最初のサーバで、以下を使用して CSP ゲートウェイ管理ページにアクセスします。
http://localhost/csp/bin/Systems/Module.cxwOpens in a new tab
-
[サーバ接続] を選択します。cache1 および cache2 のサーバ構成を追加します。詳細は、“サーバ・アクセスの構成” を参照してください。
-
[アプリケーション・アクセス] を選択します。cache1 の [デフォルトサーバ] を使用して、アプリケーション・パス /cache1/csp/sys/ を作成します。cache2 の [デフォルトサーバ] を使用して、アプリケーション・パス /cache2/csp/sys/ を作成します。詳細は、“アプリケーション・アクセスの構成” を参照してください。
-
Web サーバが IIS の場合、/cache1 と /cache2 の仮想ディレクトリを設定します ("IIS への仮想ディレクトリの追加" の節を参照)。
Apache Web サーバを使用している場合、"Apache 構成へのエイリアスの追加" を参照してください。
Apache 仮想ホストの構成
複数のサーバでアプリケーションにアクセスする代替方法は、仮想ホストの配置を使用することです。仮想ホストは、Apache Web サーバ構成の共通機能で、このサーバ環境では簡単に設定できます。例えば、2 つの仮想ホストがあり、それぞれが別の TCP ポートで待ち受けているとします。
http://virtual_host1:81/csp/sys/UtilHome.csp http://virtual_host2:82/csp/sys/UtilHome.csp
virtual_host1 と virtual_host2 の両方が同じ Web サーバおよび CSP ゲートウェイによって提供されます。
以下に、この配置の Apache 構成 (httpd.conf) を示します。
<VirtualHost virtual_host1:81> ServerName virtual_host1 </VirtualHost> <VirtualHost virtual_host2:82> ServerName virtual_host2 </VirtualHost>
以下のように CSP ゲートウェイ管理アプリケーションを使用して、これらの仮想ホストの使用を構成します。
-
ブラウザで以下を指定し、[Cache Server Pages ゲートウェイ管理] ホーム・ページに移動します。
http://localhost/csp/bin/Systems/Module.cxw
-
[サーバ接続] を選択して、cache1 および cache2 のサーバ構成を作成します。
-
[アプリケーションアクセス] を選択して、アプリケーション・パス //virtual_host1/csp/sys/ および //virtual_host2/csp/sys/ を作成します。
仮想ホスト名の前に二重スラッシュ (//) を使用することに注意してください。
前の手順の cache1 のサーバ構成設定の名前になるように、パス //virtual_host1/csp/sys/ の [デフォルトサーバ] を設定します。
前の手順の cache2 のサーバ構成設定の名前になるように、パス //virtual_host2/csp/sys/ の [デフォルトサーバ] を設定します。
-
2 つのリモート Caché サーバの構成を変更する必要はありません。ポータルのアプリケーション・パスは、どちらの場合も /csp/sys/ のままです。
詳細は、"仮想ホストの概要" を参照してください。
仮想ホストの概要
仮想ホストは、共通の Web サーバを介して 1 つまたは複数のインスタンスにアプリケーションを透過的に提供する方法です。各サーバ・インストールは、別々の Web サーバのように動作します。
仮想ホスト設定を区別する要素は、以下のいずれかです。
-
Web サーバ IP アドレス — Web サーバをホストするサーバは、2 つの IP アドレスで公開されます。以下はその例です。
123.123.123.1 == www.serverA.com 123.123.123.2 == www.serverB.com
-
Web サーバ・ポート — この方法は、異なる構成をテストする際に便利ですが、非標準の TCP ポート (80 以外の TCP ポート) が使用される場合に、要求のポート番号を組み込みます。以下はその例です。
Web Server TCP Port 80 == www.serverA.com Web Server TCP Port 81 == www.serverB.com
-
パス — 仮想ホストを実装する際の好ましい方法です。2 つの名前を登録し、これらが Web サーバの 1 つの物理 IP アドレスに変換されます。以下はその例です。
www.serverA.com == 123.123.123.1 www.serverB.com == 123.123.123.1
どの方法を選択しても、CSP ゲートウェイ構成のそれぞれの Caché インストールに名前付きのスロットを設定します (Caché インスタンス名と同じである必要はありません)。(各サーバの) CSP ゲートウェイ構成が指しているスーパーサーバ・ポートが重要です。
以下はその例です。
www.serverA.com www.serverB.com
両方とも、1 つの Web サーバ・インストールによって提供されます。
3 つすべての組み合わせを含むサーバを実装できます。オプション 1 および 3 は、ブラウザの観点では同じです。各仮想ホストを構成して、独自のドキュメント・ルートなどを作成できます。
仮想ホストの概念を CSP に拡張するには、2 つの仮想ホストを介して同じ CSP アプリケーションを異なる Caché インスタンスで実行することを仮定します。例えば、一方のサイトをテスト用、他方を実稼働用にします。
www.serverA.com/csp/login.csp ==> CacheServerA www.serverB.com/csp/login.csp ==> CacheServerB
Caché サーバへの CSP アプリケーションのアクセスは、CSP ゲートウェイの [アプリケーションアクセス] 構成オプションを使用して制御されます。通常、以下の 2 つのエントリが定義されます。
/ /csp
Caché サーバの名前は、これらのアプリケーション・パス定義と関連付けられます。
/ (Default Server == CacheServerA) /csp (Default Server == CacheServerA)
ゲートウェイでは、この構成を拡張して、アプリケーションへのアクセスに使用する仮想ホストの名前を組み込むことができます。
/ (Default Server == CacheServerA) /csp (Default Server == CacheServerA) //www.serverA.com/csp (Default Server == CacheServerA) //www.serverB.com/csp (Default Server == CacheServerB)
上記のように www.serverA.com/csp と www.serverB.com/csp に対して、別の Caché サーバを構成できます。示したように、// でサーバ名を付けます。
継承の現在のルールが適用されます。例えば、www.serverA.com/xxx/yyy.csp を要求する場合、以下に示すように serverA の最終的な既定を定義しない限り、/ に定義された Caché サーバが最終的に使用されます。
/ (Default Server == CacheServerL) /csp (Default Server == CacheServerL) //www.serverA.com/ (Default Server == CacheServerL) //www.serverA.com/csp (Default Server == CacheServerA) //www.serverB.com/csp (Default Server == CacheServerB)
CSP ゲートウェイ構成で指定するサーバは、仮想である必要はありません。例えば、1 つの NSD インストールを構成して、いくつかの実際の Apache インストールをそれぞれに対して定義された Caché サーバの異なるセットとともにサポートできます。さらに、各 Apache サーバを構成して、多数の仮想ホストをサポートできます。
CSP ゲートウェイは、CGI 環境変数 SERVER_NAME を使用してアプリケーションのホストを特定します。