リモート Web サーバでの Web アプリケーションの使用
Web サーバと Web ゲートウェイの構成
このセクションでは、Web サーバおよび Web ゲートウェイを設定して、リモート InterSystems IRIS サーバにインストールされた Web アプリケーションにアクセスする方法について説明します。この手順では、Web サーバを Machine W、InterSystems IRIS® を実行しているコンピュータを Machine I と呼びます。設定は以下の手順から構成されます。
Web サーバ・マシンへの Web ゲートウェイのインストール
IIS または Apache が実行中の Web サーバ・マシン (Machine W) に Web ゲートウェイをインストールします。詳細は、"インストール・ガイド" の "Web ゲートウェイのみのインストール" を参照してください。インストール中は、以下の指示に従ってください。
-
[セットアップ・タイプ] ダイアログ・ボックスで、[Web サーバ] を選択し、[次へ] を選択します。
-
インストール名、インストール・タイプおよびインストール先ディレクトリを確認し、正しければ [インストール] を選択します。
このインストール・プロセスによって、Web サーバ Machine W に CSP ディレクトリ構造が生成され、/CSP ファイルおよび /CSP/Bin ファイルへの仮想ディレクトリ参照が生成されます。
Web ゲートウェイの構成
次に、Web サーバ Machine W の Web ゲートウェイ構成を調整します。この構成情報は構成ファイルに保存されていますが、常に Web ゲートウェイ管理ページを使用して、構成を更新します。
-
ブラウザで以下を指定し、Web ゲートウェイ管理ページのメイン・メニューに移動します。
http://localhost/csp/bin/Systems/Module.cxw
(この URL をブックマークに登録しておくと便利です)。このリンクは、外部 Web サーバ用です。InterSystems IRIS が提供するプライベート Web サーバ用ではありません。
上記のリンクは、Web サーバが実行されている同じシステム上でポート 80 を使用してアクセスする場合のみ正しく動作します。リモート・システムから管理ページにアクセスしようとすると、既定ではアクセスを拒否されます。Web ゲートウェイ管理ページの [デフォルトパラメータ] ページを使用して、リモート・アクセスを許可するように Web サーバを構成できます。[システム管理マシン] フィールドをリモート・システムの IP アドレスに設定します。このフィールドは、Web ゲートウェイ管理ページにアクセス可能なマシンの IP アドレスをコンマまたはプラス記号で区切ったリストを受け入れます。
詳細は、"追加クライアント・アドレスからのアクセスの有効化" を参照してください。
-
左側のメニューで [サーバ接続] を選択します。IRIS が Web サーバにインストールされている場合、ローカル・マシン (Machine W) の InterSystems IRIS インスタンスに接続するように LOCAL Web サーバが構成されます。
-
リモート・マシン上で動作している InterSystems IRIS インスタンスを表す新しいサーバ (Machine I) を作成します。
-
[サーバ追加] を選択します。
-
サーバの名前を入力します (例えば、Machine I)。
-
Machine I 上のリモート InterSystems IRIS サーバの [IP アドレス] および [スーパーサーバの TCP ポート] を入力します。
-
Web ゲートウェイ接続を確立するために Machine I が必要とする認証のレベルに合うように、[接続セキュリティ] 設定を変更します。詳細は、"Web ゲートウェイとセキュリティ" を参照してください。
-
[設定を保存] を選択します。
詳細は、"サーバ構成の追加" を参照してください。
-
-
左側のメニューで [アプリケーションアクセス] を選択して、リモート InterSystems IRIS サーバ (Machine I) 上の Web アプリケーションへのパスを Machine I 用に以前作成したサーバ構成と関連付けます。既定のパスは / および /csp に事前定義されています。
-
リモート・マシン (Machine I) 上で動作している Web アプリケーションを表す新しいアプリケーション・パスを作成します。既存の構成 (/csp など) をコピーするか、または [アプリケーション追加] を選択し、新しいパス構成を手動で作成できます。アプリケーション用に作成するパスは、Machine I 上の InterSystems IRIS インスタンスにあるアプリケーション用に定義したものと一致する必要があります。
例えば、管理ポータルへの既定のパスは /csp/sys です。新しいアプリケーションを作成している場合、独自のパス名を選択します。例 : /myapp や /csp/myapp。新しいパスを作成したら、Machine I 用に以前設定した InterSystems IRIS サーバ構成の値になるように、パスの [サーバ 0] パラメータを変更します。
-
最後に、新しいパス構成を保存します。
詳細は、"アプリケーション・パスの追加" を参照してください。
Web サーバから静的ファイルを提供する場合
Web サーバから静的ファイルを提供することを計画している場合、Machine W 上にアプリケーション・パスを表すディレクトリを作成します。これらのディレクトリは、イメージ・ファイルなどの静的コンテンツを保持するためにのみ存在します。すべての CSP ファイルをここに配置する必要はありません。これらは Machine I 上にあります。
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 用に定義される構成が使用されます。
Web ゲートウェイ・インストール手順では、ホスト Web サーバが構成され、/csp 仮想パスを認識します。通常、これらの同じ設定は、/csp の下にあるディレクトリ (/csp/myapp など) にも適用されます。
新しいパス (例えば、最初の例では /myapp) を作成する場合、Web サーバを構成して、この新しい仮想パスを認識する必要があります。これらの手順は、使用する Web サーバに応じて異なります。使用中の Web サーバに適用するセクションの手順に従います。
IIS への仮想ディレクトリの追加
Web ゲートウェイのインストール手順では、Web アプリケーション用に仮想ディレクトリ install-dir\csp が構成されます。使用中のすべてのアプリケーションがこの仮想ディレクトリの下 (例えば install-dir\csp\myapp) にあり、仮想ホストを使用していない場合、仮想ディレクトリを追加する必要はありません。このセクションの手順は、具体的には IIS (インターネット インフォメーション サービス) バージョン 7 以降の Web サーバに適用されます。
前の例の /myapp と同様のアプリケーション・パス、および Web ゲートウェイのインストール中に自動的に作成される /csp 仮想ディレクトリと同様のプロパティを設定します。
-
[インターネット インフォメーション サービス] 管理ダイアログ・ボックスに移動します。これは、通常、Windows の [コントロール パネル] の [管理ツール] メニューからアクセスできます。
-
フォルダを展開し、[既定の Web サイト] を右クリックします。
-
[新規作成] を指定して [仮想ディレクトリ] を選択し、以下の値を指定して新しいディレクトリ・レコードを作成します。
Alias: myapp Directory: C:\iris\csp\myapp
-
[保存] と [適用] を選択してすべての変更を適用するか、またはウィザードを使用している場合、[完了] を選択します。
IIS を再起動して変更内容を適用します。
Apache 構成へのエイリアスの追加
Apache Web サーバを使用してリモート InterSystems IRIS サーバを制御していて、アプリケーション・パスが既定の /csp から変更されている場合、ローカル CSP ディレクトリを指す Apache 構成ファイルに対応するエイリアスを手動で追加する必要があります。
例えば、Web サーバで定義されたアプリケーション・パス (/myapp/csp) から Machine I の InterSystems IRIS インスタンスの iris に Web アプリケーションをリモートで提供するには、以下のエイリアス行を Machine W の httpd.conf ファイルに追加します。
Alias /myapp/csp "C:/iris/CSP"
Apache Web サーバを再起動して変更内容を適用します。
複数の InterSystems IRIS サーバ上での CSP へのアクセス
1 つの Web サーバを構成して、複数の InterSystems IRIS サーバ上で 1 つまたは複数の Web アプリケーションにアクセスする必要がある場合、このセクションを参照してください。このセクションでは、アプリケーションの例として管理ポータルを使用します。以下の手順を独自の Web アプリケーションに当てはめてください。管理ポータル・アプリケーションは、通常、以下の形式の URL で呼び出されます。
http://domain.com/csp/sys/UtilHome.csp
詳細は、"システム管理ガイド" の "リモート・サーバ接続の定義" を参照してください。
アプリケーション・パス用の InterSystems IRIS サーバの構成
Web アプリケーションの URL に InterSystems IRIS サーバ名を使用する場合、以下の手順に従います。InterSystems IRIS サーバ名を URL に表示しない場合、次のセクション URL での InterSystems IRIS サーバ名の変更 の手順に従ってください。
-
Web サーバで、以下を使用して Web ゲートウェイ管理ページのメイン・メニューにアクセスします。
http://localhost:<port_no>/csp/bin/Systems/Module.cxw
-
[サーバ接続] を選択します。iris1 および iris2 のサーバ構成を追加します。詳細は、"サーバ・アクセスの構成" を参照してください。
-
[アプリケーション・アクセス] を選択します。iris1 の [デフォルトサーバ] を使用して、アプリケーション・パス /iris1/csp/sys/ を作成します。iris2 の [デフォルトサーバ] を使用して、アプリケーション・パス /iris2/csp/sys/ を作成します。詳細は、"アプリケーション・アクセスの構成" を参照してください。
-
Web サーバが IIS の場合、/iris1 と /iris2 の仮想ディレクトリを設定します ("IIS への仮想ディレクトリの追加" を参照)。
Apache Web サーバを使用している場合、"Apache 構成へのエイリアスの追加" を参照してください。
InterSystems IRIS サーバ iris1 および iris2 上で管理ポータルにアクセスするには、次のように、サーバ名を URL の一部として含めます。
http://domain.com/iris1/csp/sys/UtilHome.csp http://domain.com/iris2/csp/sys/UtilHome.csp
URL での InterSystems IRIS サーバ名の変更
InterSystems IRIS サーバ名を Web アプリケーションの URL に表示しない場合、このセクションの手順に従って、代わりの名前を作成します。
各サーバに対して %System.CSP.SetConfigOpens in a new tab メソッドの CSPConfigName パラメータを使用します。この例では、サーバ iris1 の代わりの名前として linda、サーバ iris2 の代わりの名前として perry を使用します。独自のサーバと代わりの名前を使用する必要があります。
iris1 サーバのターミナル・ウィンドウで、以下のプログラムを実行します。
d $System.CSP.SetConfig("CSPConfigName","linda")
iris2 サーバのターミナル・ウィンドウで、以下のプログラムを実行します。
d $System.CSP.SetConfig("CSPConfigName","perry")
次に、以下の手順を実行します。
-
Web サーバで、以下を使用して Web ゲートウェイ管理ページのメイン・メニューにアクセスします。
http://localhost/csp/bin/Systems/Module.cxw
-
[サーバ接続] を選択します。iris1 および iris2 のサーバ構成を追加します。詳細は、"サーバ・アクセスの構成" を参照してください。
-
[アプリケーション・アクセス] を選択します。iris1 の [デフォルトサーバ] を使用して、アプリケーション・パス /linda/csp/sys/ を作成します。iris2 の [デフォルトサーバ] を使用して、アプリケーション・パス /perry/csp/sys/ を作成します。詳細は、"アプリケーション・アクセスの構成" を参照してください。
-
Web サーバが IIS の場合、/iris1 と /iris2 の仮想ディレクトリを設定します ("IIS への仮想ディレクトリの追加" を参照)。
-
Apache Web サーバを使用している場合、"Apache 構成へのエイリアスの追加" を参照してください。
CSPConfigName は、CSP 構成名のコンマ区切りリストも受け入れます。これにより、単一値ではなく複数の構成名を持つことができます。以下はその例です。
d $System.CSP.SetConfig("CSPConfigName","linda,linda1,linda2,linda3")
他の CSP グローバル・パラメータを確認するには、%SYS>d $system.CSP.DisplayConfig() と入力します。CSPConfigName が設定されている場合は、WebServerURLPrefix も設定して、スタジオで同じ URL 構造を使用できます。"WebServerURLPrefix" も参照してください。
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 サーバおよび Web ゲートウェイによって提供されます。
以下に、この配置の Apache 構成 (httpd.conf) を示します。
<VirtualHost virtual_host1:81> ServerName virtual_host1 </VirtualHost> <VirtualHost virtual_host2:82> ServerName virtual_host2 </VirtualHost>
これらの仮想ホストの使用を以下のように構成します。
-
ブラウザで以下を指定し、Web ゲートウェイ管理ページのメイン・メニューに移動します。
http://localhost/csp/bin/Systems/Module.cxw
-
[サーバ接続] を選択して、iris1 および iris2 のサーバ構成を作成します。
-
[アプリケーションアクセス] を選択して、アプリケーション・パス //virtual_host1/csp/sys/ および //virtual_host2/csp/sys/ を作成します。
仮想ホスト名の前に二重スラッシュ (//) を使用することに注意してください。
前の手順の iris1 のサーバ構成設定の名前になるように、パス //virtual_host1/csp/sys/ の [サーバ 0] を設定します。
前の手順の iris2 のサーバ構成設定の名前になるように、パス //virtual_host2/csp/sys/ の [サーバ 0] を設定します。
-
2 つのリモート InterSystems IRIS サーバの構成を変更する必要はありません。ポータルのアプリケーション・パスは、どちらの場合も /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
どの方法を選択しても、Web ゲートウェイ構成のそれぞれの InterSystems IRIS インストールに名前付きのスロットを設定します (InterSystems IRIS インスタンス名と同じである必要はありません)。(各サーバの) Web ゲートウェイ構成が指しているスーパーサーバ・ポートが重要です。
以下はその例です。
www.serverA.com www.serverB.com
両方とも、1 つの Web サーバ・インストールによって提供されます。
3 つすべての組み合わせを含むサーバを実装できます。オプション 1 および 3 は、ブラウザの観点では同じです。各仮想ホストを構成して、独自のドキュメント・ルートなどを作成できます。
仮想ホストの概念を CSP に拡張するには、2 つの仮想ホストを介して同じ Web アプリケーションを異なる InterSystems IRIS インスタンスで実行することを仮定します。例えば、一方のサイトをテスト用、他方を実稼働用にします。
www.serverA.com/csp/login.csp ==> irisA www.serverB.com/csp/login.csp ==> irisB
InterSystems IRIS サーバへの Web アプリケーションのアクセスは、Web ゲートウェイの [アプリケーションアクセス] 構成オプションを使用して制御されます。通常、以下の 2 つのエントリが定義されます。
/ /csp
InterSystems IRIS サーバの名前は、これらのアプリケーション・パス定義と関連付けられます。
/ (Default Server == irisA) /csp (Default Server == irisA)
Web ゲートウェイでは、この構成を拡張して、アプリケーションへのアクセスに使用する仮想ホストの名前を組み込むことができます。
/ (Default Server == irisA) /csp (Default Server == irisA) //www.serverA.com/csp (Default Server == irisA) //www.serverB.com/csp (Default Server == irisB)
上記のように www.serverA.com/csp と www.serverB.com/csp に対して、別の InterSystems IRIS サーバを構成できます。示したように、// でサーバ名を付けます。
継承の現在のルールが適用されます。例えば、www.serverA.com/xxx/yyy.csp を要求する場合、以下に示すように serverA の最終的な既定値を定義しない限り、/ に定義された InterSystems IRIS サーバが最終的に使用されます。
/ (Default Server == irisL) /csp (Default Server == irisL) //www.serverA.com/ (Default Server == irisL) //www.serverA.com/csp (Default Server == irisA) //www.serverB.com/csp (Default Server == irisB)
Web ゲートウェイ構成で指定するサーバは、仮想である必要はありません。例えば、1 つの NSD インストールを構成して、いくつかの実際の Apache インストールをそれぞれに対して定義された InterSystems IRIS サーバの異なるセットとともにサポートできます。さらに、各 Apache サーバを構成して、多数の仮想ホストをサポートできます。
Web ゲートウェイは、CGI 環境変数 SERVER_NAME を使用してアプリケーションのホストを特定します。