OpenVMS の Web サーバ
OpenVMS で Caché を実行している場合、Apache または HP の Web サーバを使用できます。実際、HP Secure Web Server (SWS) は Apache サーバに基づくものです。主な違いは、安全な SSL ベースの通信をサポートするためのモジュールが、HP 製品に事前に組み込まれている点です。
サポートされる Secure Web Server のバージョンは以下のとおりです。
-
Secure Web Server バージョン 2.2 : Apache バージョン 2.0.63 に基づく
ここで説明する構成手順は、OpenVMS で動作する Apache および SWS サーバの標準のレイアウトと構成に基づいています。
Apache は、通常、以下のディレクトリにインストールされます。
APACHE$COMMON
OpenVMS クラスタに関するメモ
Web サーバのすべてのファイルは、APACHE$ROOT 論理名によってポイントされたルート・ディレクトリ下に存在します。インストール中、ファイル保護は、(S:RWED, O:RWED, G, W) に設定します。構成時には、すべてのファイルは APACHE$WWW アカウントにより所有されるよう設定されます。 このセクションの例では、APACHE$ROOT 論理名を使用します。 複数サーバのクラスタ化環境の場合、APACHE$COMMON 論理名を使用するほうが適切なことがあります。これは、この論理名が APACHE$ROOT 内のクラスタ全体のファイルを定義するためです。 単一サーバのインストールの場合、これら 2 つの OpenVMS 論理名は同等です。
名前 APACHE$ROOT は、APACHE$SPECIFIC および APACHE$COMMON を表す OpenVMS 検索論理です。 CSP ゲートウェイ (CSPNSD) の必須サポート・ファイルは、APACHE$SPECIFIC に格納されません。そのため、CSPNSD コンポーネントは、APACHE$SPECIFIC:[CSPGW.BIN] または APACHE$ROOT:[CSPGW.BIN] で開始しません。
CSPNSD コンポーネントは、APACHE$COMMON:[CSPGW.BIN]. にインストールされる必要があります。
OpenVMS でのインストール (すべての接続オプション)
このセクションの指示に従った後、“推奨オプション : NSD を使用した OpenVMS および Apache API モジュール (MOD_CSP.EXE)” または “代替オプション 1 : NSD を使用した OpenVMS および CGI モジュール (CSPCGI.EXE)” のいずれかの指示に従います。
CSP ゲートウェイ・コンポーネントを Apache ディレクトリ・ツリーにインストールします (このドキュメントで前述した Windows や UNIX® の場合とは異なります)。Apache が動作する OpenVMS のユーザ・アカウント (通常は APACHE$WWW) の特権は、一般的にかなり制限されています。Apache ディレクトリ・ツリーにゲートウェイ・コンポーネントを追加すると、Apache に追加の特権を割り当てる必要はありません (つまり、Caché ディレクトリ・ツリーに定義した保護レベルを下げる必要はありません)。
以下の CSP ゲートウェイのコンポーネントおよび CSP 静的ファイルをインストールします。
-
NSD モジュール
-
CSPNSD.EXE
このイメージの既定の場所は以下のとおりです。
APACHE$COMMON:[CSP]
NSD はこのディレクトリ (ホーム・ディレクトリ) で実行します。構成ファイル (CSP.INI) とイベント・ログ (CSP.LOG) は、このディレクトリに記述されます。
-
-
Apache モジュール (“推奨オプション : NSD を使用する OpenVMS および Apache API モジュール (MOD_CSP.EXE)” の推奨オプション用)
-
SWS バージョン 2.2 (およびそれ以降) および Apache バージョン 2.0.63 — MOD_CSP22.EXE (共有可能なイメージとして機能する Apache モジュールが用意されている場合はそれを使用)
CGI モジュール (“代替オプション 1 : NSD を使用した OpenVMS および CGI モジュール (CSPCGI.EXE)” の特殊オプション用)
-
CSPCGI.EXE (実行時モジュール)
-
NPH-CSPCGI.EXE (CSPcgi.exe のコピー)
-
CSPCGISYS.EXE (システム管理モジュール)
-
NPH-CSPCGISYS.EXE (CSPcgisys.exe のコピー)
これらのイメージの既定の場所は以下のとおりです。
APACHE$COMMON:[CSP.bin]
SYS が追加されたモジュールは、CSP ウェブゲートウェイ管理ページにアクセスするための特別なモジュールです。実行時モジュール (SYS が追加されていないモジュール) はシステム管理のフォームにアクセスできません。
-
-
ハイパーイベントのコンポーネント
-
CSPBROKER.JS
-
CSPXMLHTTP.JS (Caché バージョン 5.1 以上)
これらのファイルの既定の場所は以下のとおりです。
APACHE$COMMON:[CSP.BROKER]
-
-
CSP サンプルで使用するその他の静的リソース
CSP サンプルでは、(イメージ・ファイルなど) いくつかの静的な Web リソースが必要になります。これらのファイルの既定の場所は以下のとおりです。
APACHE$COMMON:[CSP.SAMPLES]
-
管理ポータルで使用するその他の静的リソース
システム管理ポータルでは、(イメージ・ファイルなど) いくつかの静的な Web リソースが必要になります。これらのファイルの既定の場所は以下のとおりです。
APACHE$COMMON:[CSP.SYS]
手動でインストールを実行して上記のファイルが Caché ディレクトリ・ツリーに存在すれば、以下のコマンドを使用することで、これらのファイルを最終的な目的の場所に容易にコピーできます。
$ BACKUP SYS$COMMON:[cache-install-dir.CSP...]*.*APACHE$COMMON:[CSP...]/BY_OWN=PARENT/
Note:OpenVMS クラスタに関するメモ SWS/Apache がクラスタ環境で動作している場合、APACHE$SPECIFIC:[CSP] ディレクトリをすべてのクラスタ・ノードに作成する必要があります。
推奨オプション : NSD を使用した OpenVMS および Apache API モジュール (MOD_CSP.EXE)
CSP モジュールが OpenVMS の共有可能なイメージ (MOD_CSP.EXE) として提供されている場合、これによって既に説明した CGI ベースのソリューションよりも高性能なソリューションが提供されます。SWS 2.2 /Apache バージョン 2.0.63 以降では、共有可能なイメージ MOD_CSP22.EXE を使用してください。
CSP 要求 (ファイル・タイプ .csp、.cls、および .zen) を認識し、それらを CSP ゲートウェイに渡して処理するように Web サーバを構成します。
Web サーバ構成ファイル (HTTPD.CONF) は、以下のディレクトリにあります。
APACHE$COMMON:[CONF]
以下のセクションを、HTTPD.CONF の最後に追加します。
LoadModule csp_module /apache$common/csp/bin/mod_csp22.exe
CSPFileTypes csp cls zen
<LocationMatch "/*\.([Cc][Ss][Pp]|[Cc][Ll][Ss]|[Zz][En][Nn])$">
AllowOverride None
Options FollowSymLinks ExecCGI
Order allow,deny
Allow from all
</LocationMatch>
Alias /csp/ /apache$common/csp/
<Directory "/apache$common/csp">
AllowOverride None
Options MultiViews FollowSymLinks ExecCGI
Order allow,deny
Allow from all
<FilesMatch "\.(log|ini|pid|exe)$">
Deny from all
</FilesMatch>
</Directory>
ScriptAliasMatch /csp/bin/Systems/Module.cxw "/apache$common/csp/bin/nph-CSPcgiSys"
ScriptAliasMatch /csp/bin/RunTime/Module.cxw "/apache$common/csp/bin/nph-CSPcgi"
ScriptAlias /csp-bin/ "/apache$common/csp/bin/"
<Directory "/apache$common/csp/bin/">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
構成ファイルの変更後に、SWS/Apache を再起動します。
CSP へのファイルの種類の追加登録
Apache API モジュールは、以下の予約されたファイル拡張子を常に認識します。
.csp .cls .zen .cxw
この他のファイルを CSP に送信して処理できます。例えば、CSP ゲートウェイを経由して他の静的ファイルを処理する必要がある場合、またはこの Web サーバを経由して管理ポータルにアクセスする必要がある場合は、ファイルの .jpg、.gif、.png、.css、.js の各種類に対してマッピングを追加します。
以下の方法で、CSP に渡すファイルを Apache が認識するように構成できます。
-
CSP の Location 指示文の使用
-
ファイル拡張子の使用 — CSPFileTypes 指示文
-
MIME タイプの使用
CSP 指示文を使用して、特定の位置にあるすべてのファイルが CSP によって処理されるように要求します。 パス /csp の下にあるすべてのファイルとディレクトリが CSP によって処理されるように要求するには、以下のように指定します。
<Location /csp>
CSP On
SetHandler csp-handler
</Location>
例えば、以下のファイルはすべて CSP に送信されて処理されます。
/csp/
csp/samples/menu.csp
csp/sys/
CSPFileTypes 指示文は、拡張子を持つファイル (/csp/menu.csp など) に対する要求に適用されます。 ファイル拡張子を持たないファイル (/csp/menu など) への要求には適用されません。
このパラメータは、ゲートウェイの Apache モジュールにより処理され、(httpd.conf の) サーバ定義レベルでグローバルに定義されるか、または位置もしくはディレクトリ・ブロックに対する定義内に制限されます。
ファイルの種類で指定: .xxx と . yyy の両方の種類のファイルが CSP によって処理されるように要求するには、以下の指示文のように指定します。
CSPFileTypes xxx yyy
位置で指定 : 以下の要求では、.xxx と .yyy の両方の種類のファイルが CSP によって処理されますが、/csp よりも下の位置 (例えば、/csp/samples などのサブ・ディレクトリ) にあるファイルに限られます。
<Location /csp/>
CSPFileTypes xxx yyy
</Location>
ワイルドカード文字を使用して、パス /csp の下 (および /csp/samples など) にあるすべてのファイルが CSP によって処理されるように要求するには、以下のように指定します。
<Location /csp/>
CSPFileTypes *
</Location>
CSP は、前述のファイル拡張子に加えて、以下の MIME タイプのファイルを認識することもできます。
application/x-csp
および
text/csp
例えば、CSP によって処理されるファイルのリストにファイル拡張子 xxx を追加するには以下のように指定します。
LoadModule csp_module /apache$common/csp/bin/mod_csp22.exe
AddType application/x-csp csp cls zen xxx
MIME タイプを使用してファイルの種類を CSP と関連付けた場合の問題の 1 つに、リソースへのパス (ホスト・ディレクトリ) が物理的に存在することを Apache が確認し、存在しない場合には「ファイルが見つかりません」というエラーを返すことがあります。 しかし、要求されたファイルが物理的に存在することを保証するためのチェックは行われませんが、これは CSP によりサービスを受けるリソースには適切です。なぜならば、このようなリソースは Caché からサービスを受け、Web サーバからは仮想的なものだからです。 したがって、“MIME タイプによる指定” というアプローチは、アプリケーションのパス構造を Web サーバ上に複製できる場合のみ適しています。
OpenVMS API および NSD を使用したゲートウェイの運用および管理
この接続オプションは、CSP ゲートウェイの Network Service Daemon (NSD) に依存します。
-
“Network Service Daemon (NSD) の操作” の説明に従って、CSP NSD を起動します。
-
Apache の構成ファイル (HTTPD.CONF) を変更した後、SWS/Apache を再起動します。
SWS/Apache と NSD を起動する順序は重要ではありません。
-
CSP ウェブゲートウェイ管理ページにアクセスするには、ブラウザで以下のいずれかの場所を指定します。CSP ページは高性能なモジュール (MOD_CSP*.EXE) を介して提供されますが、CSP ウェブゲートウェイ管理ページへアクセスするには専用の CGI モジュール (NPH-CSPCGISYS.EXE) を使用します。
http://localhost:<port_no>/csp/bin/Systems/Module.cxw
http://localhost:<port_no>/csp-bin/nph-CSPcgiSys.exe
承認されないユーザであることを通知するエラー・メッセージが表示された場合は、"セキュリティの考慮事項" を参照してください。
.csp、.cls、および .zen 拡張子を含むファイルが要求されると、CSP エンジンが自動的に呼び出されます。以下はその例です。
http://localhost:<port_no>/csp/samples/menu.csp
OpenVMS 向けにロック・ダウンした Apache 環境
このサーバの Apache ディレクトリ構造内に CSP コンポーネントをインストールする要件については、上記のセクションで説明しました。CSP リソースにアクセスしようとしたときに HTTP 403 Forbidden のエラー・コードが返されないようにするために、事前構成された適切な Apache ディレクトリに CSP ゲートウェイ・コンポーネントをインストールすることが必要になる場合もあります。この状況に該当するインストールは、以下のように実行します。
-
CGI モジュールを以下にコピーします。APACHE$COMMON:[cgi-bin]
copy APACHE$COMMON:[csp.bin]*cgi*.exe;* APACHE$COMMON:[cgi-bin]*.*;*
-
API モジュールを以下にコピーします。APACHE$COMMON:[modules]
copy APACHE$COMMON:[csp.bin]mod*.exe;* APACHE$COMMON:[modules]*.*;*
copy APACHE$COMMON:[csp.bin]cspa*.exe;* APACHE$COMMON:[modules]*.*;*
-
これらのディレクトリの静的ファイルとサブディレクトリを以下の場所にコピーします。APACHE$COMMON:[htdocs]
copy APACHE$COMMON:[csp.samples]*.*;* APACHE$COMMON:[htdocs.csp.samples]*.*;*
copy APACHE$COMMON:[csp.broker]*.*;* APACHE$COMMON:[htdocs.csp.broker]*.*;*
copy APACHE$COMMON:[csp.sys...]*.*;* APACHE$COMMON:[htdocs.csp.sys...]*.*;*
-
NSD コンポーネントを以下の場所にインストールできます。APACHE$COMMON:[CSPGW.BIN]
Apache で事前構成されたディレクトリを使用すると、HTTPD.CONF での CSP ゲートウェイの構成が簡単になります。修正した構成ブロックを以下に示します。
推奨オプションの構成 : NSD を使用した動的 Apache API モジュール (mod_csp.exe)
LoadModule csp_module /apache$common/modules/mod_csp.exe
CSPFiletypes csp cls
<LocationMatch "/*\.([Cc][Ss][Pp]|[Cc][Ll][Ss]|[Zz][En][Nn])$">
AllowOverride None
Options FollowSymLinks ExecCGI
Order allow,deny
Allow from all
</LocationMatch>
ScriptAliasMatch /csp/bin/Systems/Module.cxw "/apache$common/cgi-bin/nph-CSPcgiSys"
ScriptAliasMatch /csp/bin/RunTime/Module.cxw "/apache$common/cgi-bin/nph-CSPcgi"
代替オプション 1 の構成 : NSD を使用した CGI モジュール (nph-CSPcgi.exe)
<LocationMatch "/*\.([Cc][Ss][Pp]|[Cc][Ll][Ss]|[Zz][En][Nn])$">
AllowOverride None
Options FollowSymLinks ExecCGI
Order allow,deny
Allow from all
</LocationMatch>
ScriptAliasMatch /*\.([Cc][Ss][Pp]|[Cc][Ll][Ss])$ "/apache$common/cgi-bin/nph-CSPcgi"
ScriptAliasMatch /csp/bin/Systems/Module.cxw "/apache$common/cgi-bin/nph-CSPcgiSys"
ScriptAliasMatch /csp/bin/RunTime/Module.cxw "/apache$common/cgi-bin/nph-CSPcgi"
NSD (Network Service Daemon) の操作
以下の手順で、NSD を開始します。
-
NSD のホーム・ディレクトリに変更します。
$ SET DEF APACHE$COMMON:[CSPGW.BIN]
-
NSD をバックグラウンド・プロセスとして開始します。
$ RUN /DETACHED /DUMP /OUTPUT=CSPNSD.LOG /ERROR=CSPNSD_ERROR.LOG
/PROCESS_NAME=CSPNSD CSPNSD
このプロセスが正常に起動されると、NSD の起動時のバナーがファイル CSPNSD.LOG に書き込まれます。
以下の手順で、NSD を停止します。
-
NSD のホーム・ディレクトリに変更します。
$ SET DEF APACHE$COMMON:[CSPGW.BIN]
-
以下のコマンドで NSD を停止します。
$ MCR APACHE$COMMON:[CSPGW.BIN]CSPNSD.EXE STOP
このコマンドは、正しい順序でNSD を終了します。つまり、Caché との間のすべての接続を適切に終了し、終了前にすべてのシステム・リソースを開放します。単純に stop コマンドを使用して NSD を終了しないでください。
すべてのエラーは、イベント・ログ (CSP.LOG) に記録されます。OpenVMS システム・エラーは CSPNSD.LOG に記録されます。これらのファイルは NSD のホーム・ディレクトリに作成され、そこで維持されます。構成ファイル CSP.INI もこのディレクトリに配置されます。
代替 TCP ポートでの NSD の開始
既定では、NSD は TCP ポート 7038 で着信する要求を待ち受けます。CSPNSD.INI ファイルに代替のパラメータを作成および指定することでこれをオーバーライドできます。このファイルの形式は以下のようになり、NSD のホーム・ディレクトリにインストールする必要があります。
[SYSTEM]
Ip_Address=127.0.0.1
TCP_Port=7038
Apache モジュールが NSD へのアクセス方法を認識できるように、以下のパラメータの値を Apache モジュールに伝える必要があります。そのためには、Apache 構成で以下の環境変数を設定して、ターゲットの NSD インストールのアドレスとポートを指定します。
CSP_NSD_NAME — NSD の IP アドレスです。NSD がリモート・コンピュータで動作している場合のみ、このパラメータを使用します。
CSP_NSD_PORT — NSD の TCP ポート番号です。
例 1 :
2 つの Apache 仮想ホスト (123.123.1.1 および 123.123.1.2) の負荷を、2 つの独立した NSD インストール (TCP ポート 7038 および 7039 で待ち受けます) 間で分散します。
以下の指示文を、Apache 構成 (HTTPD.CONF) に追加します。
<VirtualHost 123.123.1.1>
ServerName 123.123.1.1
SetEnv CSP_NSD_PORT 7038
</VirtualHost>
<VirtualHost 123.123.1.2>
ServerName 123.123.1.2
SetEnv CSP_NSD_PORT 7039
</VirtualHost>
例 2 :
2 つの CSP アプリケーション (/csp1 および /csp2) の負荷を、2 つの独立した NSD インストール (TCP ポート 7038 および 7039 で待ち受けます) 間で分散します。
-
以下の指示文を、Apache 構成 (HTTPD.CONF) に追加します。
<Location /csp1> SetEnv CSP_NSD_PORT 7038 </Location> <Location /csp2> SetEnv CSP_NSD_PORT 7039 </Location>
-
Apache 構成の変更後は、Apache を再起動します。
NSD の複数のインスタンスを実行する場合、各インスタンスを別々のディレクトリにインストールして、それぞれのインスタンスが各自の構成ファイル (CSPNSD.INI および CSP.INI) とログ・ファイル (CSP.LOG) のコピーを管理する必要があります。NSD の内部 HTTP サーバを使用すると、各インスタンスの CSP ウェブゲートウェイ管理ページに簡単にアクセスできます。以下に例を示します。
http://localhost:7038/csp/bin/Systems/Module.cxw
http://localhost:7039/csp/bin/Systems/Module.cxw