UNIX®、Linux、および Mac OS X の代替構成
このセクションでは、UNIX、Linux、および Mac OS の特殊オプションの構成方法を説明します。
UNIX®、Linux、および Mac OS X での NSD の使用法
NSD を使用する場合
このドキュメントで説明するいくつかのオプションで NSD が使用されています。Web サーバから独立して CSP ゲートウェイを管理できるように、NSD を使用して Web サーバと CSP ゲートウェイを分離する状況として 2 種類が考えられます。それらは以下のとおりです。
-
Web サーバがその負荷を複数のサーバ・プロセスに分散する場合に、CSP ゲートウェイのインスタンスを各 Web サーバ・プロセスにアタッチする。
-
CSP の占める割合が少ない、きわめて大規模な Web サーバ (例えば、CSP アプリケーションのほかに、php、静的コンテンツ、.NET、.ASP アプリケーションなどを扱う Web サーバ) を運用する。
NSD モジュールのインストール場所
必要に応じて、NSD モジュールは CSPnsd となります。
このモジュールの既定の場所は以下のとおりです。
/opt/cspgateway/bin
NSD は、そのホーム・ディレクトリ (上記参照) から実行されます。NSD ベースの接続オプションの場合、構成ファイル (CSP.INI) とイベント・ログ (CSP.LOG) はこのディレクトリに書き込まれます。
NSD の操作
NSD を実行するには、以下の手順に従います。
-
以下のディレクトリに変更します。
/opt/cspgateway/csp
-
以下のコマンドを入力して、NSD を開始します。
./CSPnsd
バックグラウンドへ移動する前に、NSD は実行している構成を示すバナーを表示します。このバナーには、このサービスに割り当てられている TCP ポート番号 (既定ではポート 7038) が表示されます。
このコマンドで -s 修飾子を使用すると、起動時のすべてのメッセージが非表示になります。例えば、システムが起動したときに呼び出されたスクリプトから、NSD を開始するには以下を使用します。
/opt/cspgateway/csp/CSPnsd –s
その他の一般的なスタートアップ・オプション :
-
ヘルプ情報を表示します。
./CSPnsd -h
-
NSD の動作を一時停止します。このコマンドは、停止信号 (SIGSTOP) を NSD のプロセスに送信します。
./CSPnsd -pause
-
(一時停止の後)、NSD の動作を続行します。このコマンドは続行信号 (SIGCONT) を NSD のプロセスに送信します。
./CSPnsd -cont
-
他のユーザに NSD を実行する許可を与えます。NSD (CSPnsd) コンポーネントの管理者は、CSPnsd —m=s を使用して NSD を開始/停止する許可をグループまたはその他のユーザに与えることができます。ここで、s は起動オプションです。
s には以下のいずれかを指定できます。
-
現在のユーザには u (既定)
-
現在のグループには g
-
その他には o
-
すべてのユーザには a (m=ugo)
例 : CPSnsd -m=ug は、NSD を実行する許可をグループ (管理者グループ) に与えます。このコマンドは、-rw-rw–-- の CPSnsd.pid 許可を与えます。
CSPnsd を停止するコマンドが発行されると、CSPnsd 親プロセスに以前と同様にシャットダウンするようシグナルを送信しようとします。サービスが別のユーザによって開始されたためにこれが不可能な場合は、CSPnsd.ini ファイルにフラグが書き込まれ、サービスはフラグを認識したときに自体を正常に終了します。このプロセスの完了には、最大 20 秒かかります。
-
NSD を終了するには、以下を入力します。
./CSPnsd -stop
または、以下を実行します。
kill –TERM `cat /opt/cspgateway/csp/CSPnsd.pid`
これらのコマンドは、NSD を正しい順序でクローズします。つまり、Caché との間のすべての接続を正しく終了し、終了前にすべてのシステム・リソースを開放します。kill –9 コマンドを使用して NSD を終了しないでください。
すべてのエラーは、イベント・ログ (CSP.log) に記録されます。このファイルは NSD のホーム・ディレクトリ (/opt/cspgateway/csp など) に作成され管理されます。構成ファイル CSP.ini もこのディレクトリに配置されます。
代替 TCP ポートでの NSD の開始
既定では、NSD は TCP ポート 7038 で着信する要求を待ち受けます。以下のようにサービスを開始することでこれをオーバーライドできます。port_no は、指定する TCP ポート番号です。
./CSPnsd [port_no]
または以下のようにします。
./CSPnsd -p=[port_no]
開始時に、NSD は以下のファイルを作成します。
/opt/cspgateway/csp/CSPnsd.ini
このファイルには、通常、以下の行が記述されます。
[SYSTEM]
Ip_Address=127.0.0.1
TCP_Port=7038
ここでは、クライアントは、Web サーバに格納された CSP モジュールまたは Web サーバに動的にリンクされる CSP モジュール、およびサーバから呼び出された CSP CGI モジュール (またはそのどちらかのモジュール) です。したがって、このファイルを削除、または移動することはできません。また、Web サーバ・プロセスがこのファイルを読み取り可能であることも重要です。Web サーバを操作する UNIX® ユーザ名を考慮して、適切な特権を設定してください。NSD クライアントは、以下の場所でこのファイルを検索しようとします。
/cache-install-dir/csp
/opt/cspgateway/csp
/etc
NSD が別のディレクトリで動作している場合、CSPnsd.ini ファイルを上記のいずれかの場所に移動する必要があります。
NSD の複数のインスタンスが実行している状況で、CSPnsd.ini ファイルに NSD ポート番号を格納することは不適切です。Apache サーバの場合、NSD の TCP ポート番号をクライアントに伝えるためのより適切なメカニズムがあります。Apache 構成で以下の環境変数を設定して、ターゲットの NSD インストールのアドレスとポートを指定します。
CSP_NSD_NAME — NSD の IP アドレスです。NSD がリモート・コンピュータで動作している場合のみ、このパラメータを使用します。
CSP_NSD_PORT — NSD の TCP ポート番号です。
これらの環境変数に指定した値は、CSPnsd.ini ファイルの値よりも優先されます。
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 つの 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 の複数のインスタンスを実行している場合は、各インスタンスを別々のディレクトリにインストールし、それぞれのインスタンスに専用の構成ファイル (CSP.ini) およびログ・ファイル (CSP.log) を管理することをお勧めします。NSD の内部 HTTP サーバを使用すると、各インスタンスの CSP ウェブゲートウェイ管理ページに簡単にアクセスできます。以下はその例です。
http://localhost:7038/csp/bin/Systems/Module.cxw
http://localhost:7039/csp/bin/Systems/Module.cxw
複数の NSD プロセスへの負荷分散
既定では、NSD は 2 プロセス処理モード (親ワーカ 1 つと子ワーカ 1 つ) で動作します。
ただし、1 つの UNIX® プロセスが起動できるスレッドの数には上限があります。同時に発生している CSP アプリケーションの負荷により、要求が使用可能なスレッドの待ち行列を作ってしまった場合は、NSD で使用されるプロセスの数を増やすことを検討してください。
./CSPnsd –c=[no_processes]
ここで、no_processes は開始される子 (またはワーカ) プロセスの数です。
子プロセスの数を 1 に設定することには長所があるということにも注目してください。
./CSPnsd –c=1
このような状況では、NSD により、親プロセス 1 つと子ワーカ・プロセス 1 つの合計 2 プロセスが開始されます。‘–c’ 指示文を使用しているときに、親プロセスが存在すると、ワーカ・プロセスの 1 つで障害が発生している場合に親プロセスがその処理を引き継ぐことができるため、NSD の復元力が向上します。単一のマルチスレッド・アーキテクチャでは、NSD は必ずしも重大な内部エラー状態から回復できるわけではありません。
ワーカ・プロセスの数が 2 つ以上の場合は、ステート認識接続 (保持モード 1) を使用しないでください。
NSD に対する管理者権限の付与
NSD (CSPnsd) コンポーネントの管理者は、このサービスの開始/停止が許可されたユーザ (またはグループ) を一部制御することができます。
既定のシナリオでは、CSPnsd マスタ・プロセス ID (PID) ファイル (CSPnsd) は、サービスを開始したユーザのみがその後サービスを終了できるように作成されます。
例えば、管理者は、現在の UNIX グループに属するすべてのユーザがサービスを管理できるように選択することができます。 これは管理ユーザが属するグループです。
NSD start-up option: [-m=s] Define the user(s) permitted to manage this service where 's' is: 'u' for the current user (the default), 'g' for the current group, 'o' for others, 'a' for everyone (m=ugo),
例:
./CSPnsd -m=ug
これにより、現在のユーザ・グループ内の現在のユーザおよびその他すべてのユーザが NSD を管理できます。
NSD を停止するコマンドが発行されると、まず CSPnsd 親プロセスに以前と同様にシャットダウンするようシグナルを送信しようとします。 サービスが別のユーザによって開始されたためにこれが不可能な場合は、CSPnsd.ini ファイルにフラグが書き込まれ、サービスはこのフラグを認識したときに自体を正常に終了します。 このプロセスの完了には、最大 20 秒かかります。
UNIX®、Linux、Mac OS 用 Apache の特殊オプション
このセクションには、以下のサブセクションがあります。すべての特殊オプションについて、最初のセクションを参照します。次に、それぞれのインストール環境に該当するオプションの指示に従います。
UNIX®、Linux、Mac OS の Apache インストール場所 (すべての代替オプション)
このセクションでは、CSP ゲートウェイ・ファイルと CSP 静的ファイルのディレクトリの場所について説明します。
-
NSD モジュールは以下のとおりです。
CSPnsd
このモジュールの既定の場所は以下のとおりです。
/opt/cspgateway/csp
NSD は、NSD のホーム・ディレクトリ /opt/cspgateway/csp から実行する必要があります。構成ファイル CSP.INI とイベント・ログ CSP.LOG は、このディレクトリに記述されます。
Caché のアップグレード時に既存のゲートウェイに影響を与えないように、インストール時にこれらのモジュールは共通の場所 /usr/cspgateway/nsd に配置されます。この場所は、特定の Caché インスタンスに関するものではありません。
-
CGI およびその他のダイナミック・リンク・モジュール :
-
CSPcgi (実行時モジュール)
-
nph-CSPcgi (CSPcgi のコピー)
-
CSPcgiSys (システム管理モジュール)
-
nph-CSPcgiSys (CSPcgiSys のコピー)
-
mod_csp22.so (Apache バージョン 2.4.x — 提供される場合は、DSO として機能する Apache モジュール)
-
mod_csp22.so (Apache バージョン 2.2.x — 提供される場合は、DSO として機能する Apache モジュール)
-
mod_csp2.so (Apache バージョン 2.0.x — 提供される場合は、DSO として機能する Apache モジュール)
Caché のアップグレード時に既存のゲートウェイに影響を与えないように、インストールの際にこれらのモジュールは以下の共通の場所に配置されます。この場所は、特定の Caché インスタンスに関するものではありません。
/usr/cspgateway/bin
元の場所 (/cache-install-dir/csp/bin) は、特定の Caché インスタンスの管理ポータルの提供に必要なゲートウェイ・コンポーネントの保持に使用されます。
Sys が追加されたモジュールは、CSP ウェブゲートウェイ管理ページにアクセスします。実行時モジュール (Sys が追加されていないモジュール) はCSP ウェブゲートウェイ管理ページにアクセスできません。
-
-
ハイパーイベントのコンポーネントの既定の場所は以下のとおりです。
-
CSPBroker.js
-
CSPxmlhttp.js
CSP サンプルおよび管理ポータルで必要なその他の静的リソース (イメージ・ファイルなど) は以下のとおりです。
\cache-install-dir\csp\broker
-
推奨オプション (“推奨オプション : NSAPI モジュール (CSPn3.so)”) または特殊オプション 1 (“代替オプション 1 : NSD を使用した Apache API モジュール (mod_csp24.so)”) のいずれかの指示に従う前に、それぞれの Apache ビルドに共有オブジェクト管理のためのモジュール (mod_so) が組み込まれていることを確認します。この確認を行うには、以下のコマンドを実行します。その結果、Apache で現在使用可能なモジュールが一覧表示されます。
httpd -l
表示されるモジュール・リストには、共有オブジェクト・モジュール (mod_so) が含まれているはずです。一般的なモジュール・リストは以下のとおりです (mod_so が含まれています)。
Compiled in modules:
core.c
mod_access.c
mod_auth.c
mod_include.c
mod_log_config.c
mod_env.c
mod_setenvif.c
prefork.c
http_core.c
mod_mime.c
mod_status.c
mod_autoindex.c
mod_asis.c
mod_cgi.c
mod_negotiation.c
mod_dir.c
mod_imap.c
mod_actions.c
mod_userdir.c
mod_alias.c
mod_so.c
インストールされている Apache に mod_so が含まれていない場合は、Apache ドキュメントを参照し、Apache を再構築してこのモジュールを追加するための手順に従ってください。
特殊オプション 1 : NSD を使用した Apache API モジュール (mod_csp24.so)
使用するディストリビューションに、事前に構築された共有オブジェクト (mod_csp22.so または mod_csp2.so) として CSP モジュールが付属している場合は、"構成" に関するセクションに進んでください。付属のソース・ファイル mod_csp.c から共有オブジェクトを構築する場合は、以下の "方法 1" または "方法 2" を選択してください。方法 1 をお勧めします。
Apache バージョン 2.4.x では mod_csp24.so モジュール、Apache バージョン 2.2.x では mod_csp22.so モジュール、Apache バージョン 2.0.x では mod_csp2.so モジュールを使用します。
共有オブジェクトの生成については、ご使用の Apache のマニュアルとあわせて、以下の説明もお読みください。以下の説明は、Apache のルート・ディレクトリが apache であることを前提としています。実際は、多くの場合、このディレクトリ名に Apache のバージョン番号が追加されます。
付属のモジュール・ソース・ファイル (mod_csp.c) は、Apache v2.2.x および Apache V2.0.x と完全に互換性があります。
方法 1 : apxs (APache eXtenSion) ツールを使用した、共有オブジェクトとしての CSP モジュールのビルド
以下のコマンドを実行すると、Apache 拡張ツール apxs を使用して、Apache の /modules ディレクトリに共有ライブラリ mod_csp24.so がビルドおよびインストールされます。モジュールをロードする指示文が、Apache 構成ファイル /conf/httpd.conf に追加されます。
apxs -I -a –c mod_csp.c
Apache バージョン 2.02.x では mod_csp22.so モジュールを使用し、Apache バージョン 2.0.x では mod_csp2.so モジュールを使用します。
また、以下のように mod_csp24.so を直接ビルドすることもできます。
apxs –c –o mod_csp2.so mod_csp.c
共有オブジェクトによって生成されたバイナリをディレクトリ /opt/cspgateway/bin にインストールします。
方法 2 : 共有オブジェクトとしての CSP モジュールの手動ビルド
CSP モジュールを共有オブジェクトとして手動でビルドするには、以下の手順を実行します。
-
モジュール・ソース・ファイル mod_csp.c を以下のディレクトリにインストールします。/usr/apache/src/modules/extra。
-
/usr/apache/src ディレクトリに戻り、構成ファイルを編集します。このファイルの末尾に近いところから、以下の行を見つけてください。
# AddModule modules/example/mod_example.o
この行の後に、以下の行を追加してください。
ShareModule modules/extra/mod_csp24.so
-
以下のコマンドを実行して、構築プロセスを構成します。
./Configure
-
以下のコマンドを実行して、共有オブジェクトを構築します。
make
-
共有オブジェクト mod_csp.so を /usr/apache/src/modules/extra に作成します。
apxs ツールの詳細は、Apache ドキュメント (http://httpd.apache.org/docs/2.0/programs/apxs.htmlOpens in a new tab) を参照してください。
方法 2 の例 :
このセクションでは、一般的な UNIX® システムで Apache モジュールのビルドに使用できるコンパイラ・コマンドおよびリンカ・コマンドをまとめています。
-
DEC UNIX® 5 (DEC コンパイラ)
cc -c -DOSF1 -std1 -pthread -DIS_64 -ieee_with_inexact \ –I/usr/apache/include mod_csp.c -o mod_csp.o ld -all -shared -expect_unresolved "*" -taso mod_csp.o \ -o mod_csp24.so
-
FreeBSD (GNU コンパイラ)
cc -c -DFREEBSD –I/usr/apache/include -o mod_csp.o mod_csp.c ld -G -o mod_csp.so mod_csp24.o
-
HP-UX (HP コンパイラ)
cc -c -DHPUX11 -DNET_SSL -D_HPUX_SOURCE -Ae +DAportable +z -DMCC_HTTPD -DSPAPI20 –I/usr/apache/include \ mod_csp.c -o mod_csp.o ld -b mod_csp.o -o mod_csp24.so
-
HP-UX : 64-bit (HP コンパイラ)
cc -c -DHPUX11 -DNET_SSL -D_HPUX_SOURCE -Ae +DAportable +z -DMCC_HTTPD -DSPAPI20 -I/usr/apache/include \ mod_csp.c -o mod_csp.o ld -b mod_csp.o -o mod_csp24.so
-
HP-UX : Itanium (HP コンパイラ)
cc -c -c -DHPUX11 -DNET_SSL -D_HPUX_SOURCE -Ae +z -DMCC_HTTPD -DSPAPI20 –I/usr/apache/include mod_csp.c -o mod_csp.o ld -b mod_csp.o -o mod_csp24.so
-
Linux : (GNU コンパイラ)
-
Apache v2.0.x
cc -c -fpic -DLINUX –I/usr/apache/include -o mod_csp.o mod_csp.c ld -G -lrt -ldl -o mod_csp.so mod_csp.o
-
Apache v24.x
cc -c -fpic -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE64_SOURCE –I/usr/apache/include mod_csp.c -o mod_csp24.o ld -G mod_csp24.o -lrt -ldl -o mod_csp24.so
-
Mac OS X : (Mac OS X コンパイラ)
–I/usr/apache/include mod_csp.c -o mod_csp.o gcc -c -fPIC -fno-common -DMACOSX -DDARWIN gcc -bundle -flat_namespace -undefined suppress mod_csp.o -o mod_csp24.so
-
IBM AIX® (IBM コンパイラ)
xlc_r -c -DAIX -DAIX5 -I/usr/apache/include mod_csp.c -o mod_csp.o xlc_r -G -H512 -T512 -bM:SRE mod_csp.o -berok -bexpall -bnoentry -lm -lc -o mod_csp24.so
-
IBM AIX® : 64-bit (IBM コンパイラ)
OBJECT_MODE=64 export OBJECT_MODE xlc_r -c -DAIX -DAIX5 -I/usr/apache/include mod_csp.c -o mod_csp.o xlc_r -G -H512 -T512 -bM:SRE mod_csp.o -berok -bexpall -bnoentry -lm -lc -o mod_csp24.so
-
Sun OS/Solaris : Opteron (Sun コンパイラ)
cc -c -Xa -w -DSOLARIS -KPIC -I/usr/apache/include -o mod_csp.o mod_csp.c ld -G -o mod_csp.24so mod_csp.o
-
Sun OS/Solaris : Opteron : 64-bit (Sun コンパイラ)
cc -c -Xa -w -DSOLARIS -KPIC -xarch=amd64 -DBIT64PLAT -I/usr/apache/include -o mod_csp.o mod_csp.c ld -G -o mod_csp24.so mod_csp.o
-
Sun OS/Solaris : Intel (Sun コンパイラ)
cc -c -Xa -w -DSOLARIS -KPIC -I/usr/apache/include -o mod_csp.o mod_csp.c ld -G -o mod_csp24.so mod_csp.o
-
Sun OS/Solaris : SPARC (Sun コンパイラ)
cc -c -Xa -w -DSOLARIS -I/usr/apache/include -o mod_csp.o mod_csp.c old -G -o mod_csp24.so mod_csp.
-
Sun OS/Solaris : SPARC : 64-bit (Sun コンパイラ)
cc -c -Xa -w -DSOLARIS -KPIC -xarch=v9 -DBIT64PLAT -I/usr/apache/include -o mod_csp.o mod_csp.c ld -G -o mod_csp.24so mod_csp.o
mod_csp24.so を /opt/cspgateway/bin にコピーします。
実行時の構成
Apache 構成ファイル httpd.conf を編集します。標準の Apache ディストリビューションでは、このファイルは以下の場所に配置されています。
/usr/apache/conf
Red Hat Linux の場合、httpd.conf の実行時バージョンは以下の場所に配置されています。
/etc/httpd/conf
拡張子 .csp、.cls、または .zen を含む要求されたファイルに対して CSP エンジンを呼び出す場合は、以下のセクションを httpd.conf の最後に追加します。もちろん、Apache バージョン 2.0.x を使用する場合は、以下の構成ブロックで mod_csp2.so を指定してください。Apache バージョン 2.2.x を使用している場合は、mod_csp22.so を指定してください。
以下の構成ブロックは、Apache 環境で利用できる正規表現 (regex) プロセッサに依存しています。このケースに相当しない場合、結果として CSP ファイルは提供されません ("ファイルが見つかりません" というエラーが返されます)。この状況を解決するには、以下の手順に従います。
<LocationMatch "/*\.([Cc][Ss][Pp]|[Cc][Ll][Ss]|[Zz][En][Nn])$">
SetHandler csp-handler
</LocationMatch>
以下のブロックと置換します。
CSPFiletypes csp-handler csp cls
LoadModule csp_module /opt/cspgateway/bin/mod_csp.so
<LocationMatch "/*\.([Cc][Ss][Pp]|[Cc][Ll][Ss]|[Zz][En][Nn])$">
SetHandler csp-handler
</LocationMatch>
Alias /csp/ /opt/cspgateway/csp/
<Directory "/opt/cspgateway/csp">
AllowOverride None
Options MultiViews FollowSymLinks ExecCGI
Require all granted
<FilesMatch "\.(log|ini|pid|exe)$">
Require all denied
</FilesMatch>
<Files CSPnsd>
Require all denied
</Files>
</Directory>
ScriptAlias /csp-bin/ "/opt/cspgateway/bin/"
ScriptAliasMatch /csp/bin/Systems/Module.cxw "/opt/cspgateway/bin/nph-CSPcgiSys"
ScriptAliasMatch /csp/bin/RunTime/Module.cxw "/opt/cspgateway/bin/nph-CSPcgi"
<Directory "/opt/cspgateway/bin/">
AllowOverride None
Options None
Require all granted
</Directory>
httpd.conf の変更後に、Apache を再起動します。
Apache モジュールと NSD 間の接続プーリング
この機能は、Apache モジュール mod_csp のビルド 7 (および、それ以降) でのみ使用可能です。これは Caché v2008.2 ディストリビューションで提供されています。
このセクションで説明する拡張機能は、Apache モジュール mod_csp[n].so/dll の接続プーリングに関係しています。前述のとおり、このモジュールは Web サーバ環境とゲートウェイ NSD コンポーネント (CSPnsd) の間に通信ラインを実装するために設計されています。
Apache モジュールの従来のバージョンでは、Web サーバとゲートウェイの間に HTTP v1.0 スタイルの通信が実装されていました。このモードの操作が必要だった理由は、CSP ゲートウェイの最新バージョンで機能が強化される前は、クライアントに送信される CSP 応答には通常、いかなる形でもサイズが含まれていなかったためです。したがって、応答を終了する唯一の方法は “接続を閉じる” イベントでした。ただし、その他の HTTP v1.0 ベースのアプリケーションと同様、使用のピーク時に、以下の問題が明らかになります。
-
個々の要求を処理するために新しい TCP 接続を作成するオーバーヘッド。
-
プロダクション・システムでは、使用のピーク時に “TIME_WAIT” 状態のまま無駄に長い時間が費やされ、否応なく、接続が蓄積される可能性があります。
前述の問題は、モジュールと NSD の間で永続的な TCP 接続のプールを維持することにより解決できます。サーバ側 (つまり、NSD) では、スレッドのプールは永続接続と共に維持されます (接続指向のスレッド・プール)。
これらの機能強化により、Apache/UNIX® のインストール環境で著しいパフォーマンスの向上が望めます。最高の向上が見られるのは、Apache v2 (およびそれ以降) を使用した場合です。これは、このサーバはマルチスレッド/マルチプロセス・ハイブリッドで、サーバへの永続的な TCP 接続の大きなプールを維持できる mod_csp が、単一のインスタンスで動作することを見込むことができるからです。しかし、これと同じ最適化により、Apache グループの従来のシングルスレッド/マルチプロセス・サーバ (v1.3 以前) のパフォーマンスも向上します。
接続プーリングの制御
接続プールのサイズは、http.conf で指定されている以下の Apache 構成パラメータで制御できます。
CSPMaxPooledNSDConnections <no>
このパラメータが存在しない場合は、既定値の 32 が内部的に使用されます。これは事実上、以下と同じです。
CSPMaxPooledNSDConnections 32
接続プーリングをオフにするには、以下のようにしてこのパラメータをゼロに設定します。
CSPMaxPooledNSDConnections 0
何らかの理由により、従来の操作モード (非対称モード) の使用 (これにより、ゲートウェイ側の接続が閉じられ、応答の送信終了が通知される) が必要になった場合は、このパラメータをマイナス 1 に設定します。
CSPMaxPooledNSDConnections -1
Apache API および NSD を使用したゲートウェイの運用および管理
この接続オプションは、CSP ゲートウェイの Network Service Daemon (NSD) に依存します。
-
“Network Service Daemon (NSD) の操作” のセクションの説明に従って、CSP NSD を起動します。
-
Apache の構成 (httpd.conf) を変更した後、その Apache を再起動する必要があります。
Apache と NSD を起動する順序は重要ではありません。
-
CSP ウェブゲートウェイ管理ページにアクセスするには、ブラウザに以下の URL を入力します。CSP ページは高性能なモジュール (mod_csp24.so) を介して提供されますが、CSP ウェブゲートウェイ管理ページへアクセスするには専用の CGI モジュール (nph-CSPcgiSys) を使用します。
http://localhost:<port_no>/csp-bin/nph-CSPcgiSys
承認されないユーザであることを通知するエラー・メッセージが表示された場合は、"セキュリティの考慮事項" を参照してください。
.csp、.cls、および .zen 拡張子を含むファイルが要求されると、CSP エンジンが自動的に呼び出されます。以下はその例です。
http://localhost:<port_no>/csp/samples/menu.csp
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-sa
</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_sa /opt/cspgateway/csp/bin/CSPa22.so
AddType application/x-csp csp cls zen xxx
MIME タイプを使用してファイルの種類を CSP と関連付けた場合の問題の 1 つに、リソースへのパス (ホスト・ディレクトリ) が物理的に存在することを Apache が確認し、存在しない場合には「ファイルが見つかりません」というエラーを返すことがあります。 しかし、要求されたファイルが物理的に存在することを保証するためのチェックは行われませんが、これは CSP によりサービスを受けるリソースには適切です。なぜならば、このようなリソースは Caché からサービスを受け、Web サーバからは仮想的なものだからです。 したがって、“MIME タイプによる指定” というアプローチは、アプリケーションのパス構造を Web サーバ上に複製できる場合のみ適しています。
代替オプション 2 : NSD を使用した CGI モジュール (nph-CSPcgi)
CSP 要求 (ファイル・タイプ .csp、.cls、および .zen) を認識し、それらを CSP ゲートウェイに渡して処理するように Web サーバを構成します。
Web サーバ構成ファイル (httpd.conf) は、以下のディレクトリにあります。
/usr/apache/conf
Red Hat Linux の場合、httpd.conf の実行時バージョンは以下の場所に配置されています。
/etc/httpd/conf
以下のセクションを、httpd.conf の最後に追加します。
<LocationMatch "/*\.([Cc][Ss][Pp]|[Cc][Ll][Ss]|[Zz][En][Nn])$">
AllowOverride None
Options FollowSymLinks ExecCGI
Require all granted
</LocationMatch>
ScriptAliasMatch /csp/bin/Systems/Module.cxw "/opt/cspgateway/bin/nph-CSPcgiSys"
ScriptAliasMatch /csp/bin/RunTime/Module.cxw "/opt/cspgateway/bin/nph-CSPcgi"
ScriptAliasMatch /*\.([Cc][Ss][Pp]|[Cc][Ll][Ss])$ "/opt/cspgateway/bin/nph-CSPcgi"
Alias /csp/ instance-installation-directory
<Directory "instance-installation-directory">
AllowOverride None
Options MultiViews FollowSymLinks ExecCGI
Require all granted
<FilesMatch "\.(log|ini|pid|exe)$">
Require all denied
</FilesMatch>
<Files CSPnsd>
Require all denied
</Files>
</Directory>
ScriptAlias /csp-bin/ "/opt/cspgateway/bin/"
<Directory "/opt/cspgateway/bin/">
AllowOverride None
Options None
Require all granted
</Directory>
上記の構成ブロックは、Apache 環境で利用できる正規表現 (regex) プロセッサに依存しています。このケースに相当しない場合、結果として CSP ファイルは提供されません ("ファイルが見つかりません" というエラーが返されます)。この状況を修復するには、CSP ファイル拡張子で連結を行う代わりに、使用している CSP アプリケーションの仮想のルート位置と、CGI モジュールを連結させます。例えば、使用している CSP アプリケーションが /csp に含まれているとします。CSP CGI モジュールを /csp にあるファイルに関連付けるには、以下の手順に従います。
<LocationMatch "/*\.([Cc][Ss][Pp]|[Cc][Ll][Ss]|[Zz][En][Nn])$">
AllowOverride None
Options FollowSymLinks ExecCGI
Require all granted
</LocationMatch>
ScriptAliasMatch /*\.([Cc][Ss][Pp]|[Cc][Ll][Ss])$ "/opt/cspgateway/bin/nph-CSPcgi"
以下のブロックと置換します。
<Location "/csp">
AllowOverride None
Options FollowSymLinks ExecCGI
Require all granted
</Location>
ScriptAlias /csp "/opt/cspgateway
/bin/nph-CSPcgi"
これらの指示文は、フォームの URL に対して作用します。
http://localhost:<port_no>/csp/*.csp
この構成ブロックを、他のルート位置で繰り返します。例えば、フォームの URL の /myapps に対して同様の処理を繰り返します。
http://localhost:<port_no>/myapps/*.csp
regex の問題を回避するには、CSP MIME タイプと組み合わせて Action 指示文を使用する方法もあります。ただし、Action は本質的にコンテンツに対するフィルタ技術なので、Caché サーバが別のコンピュータにインストールされている場合でも、CSP ファイルが物理的に Web サーバ・ホストに存在している必要があります。この方法を使用する場合は、最初に新規の MIME タイプを Apache の mime.types ファイルの最後に追加し、それを CSP コンテンツを表すファイル・タイプと連結させます。mime.types ファイルは、httpd.conf ファイルと同じディレクトリにあります。
text/csp csp cls
次に、httpd.conf の CGI 構成ブロックの最後に、Action 指示文を追加します。
Alias /csp/ /opt/cspgateway/csp/
<Directory "/opt/cspgateway/csp">
AllowOverride None
Options MultiViews FollowSymLinks ExecCGI
Require all granted
<Files CSPnsd>
Require all denied
</Files>
<Files CSP.ini>
Require all denied
</Files>
<Files CSP.log>
Require all denied
</Files>
<Files CSPnsd.ini>
Require all denied
</Files>
<Files CSPnsd.pid>
Require all denied
</Files>
</Directory>
ScriptAlias /csp-bin/ "/opt/cspgateway/bin/"
<Directory "/opt/cspgateway/bin/">
AllowOverride None
Options None
Require all granted
</Directory>
Action text/csp “/csp-bin/nph-CSPcgi”
httpd.conf の変更後に、Apache を再起動します。
CGI はオープン・スタンダードなので、CSP の CGI モジュールはすべての Web サーバで作動します。
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-sa
</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_sa /opt/cspgateway/csp/bin/CSPa22.so
AddType application/x-csp csp cls zen xxx
MIME タイプを使用してファイルの種類を CSP と関連付けた場合の問題の 1 つに、リソースへのパス (ホスト・ディレクトリ) が物理的に存在することを Apache が確認し、存在しない場合には「ファイルが見つかりません」というエラーを返すことがあります。 しかし、要求されたファイルが物理的に存在することを保証するためのチェックは行われませんが、これは CSP によりサービスを受けるリソースには適切です。なぜならば、このようなリソースは Caché からサービスを受け、Web サーバからは仮想的なものだからです。 したがって、“MIME タイプによる指定” というアプローチは、アプリケーションのパス構造を Web サーバ上に複製できる場合のみ適しています。
CGI および NSD を使用したゲートウェイの運用および管理
この接続オプションは、CSP ゲートウェイの Network Service Daemon (NSD) に依存します。
-
“Network Service Daemon (NSD) の操作” のセクションの説明に従って、CSP NSD を起動します。
-
Apache の構成 (httpd.conf) を変更した後、その Apache を再起動する必要があります。
Apache と NSD を起動する順序は重要ではありません。
-
CSP ウェブゲートウェイ管理ページにアクセスするには、ブラウザに以下のいずれかの URL を入力します。
http://localhost:<port_no>/csp/bin/Systems/Module.cxw http://localhost:<port_no>/csp-bin/nph-CSPcgiSys
承認されないユーザであることを通知するエラー・メッセージが表示された場合は、“セキュリティの考慮事項” を参照してください。
.csp、.cls、および .zen 拡張子を含むファイルが要求されると、CSP エンジンが自動的に呼び出されます。以下はその例です。
http://localhost:<port_no>/csp/samples/menu.csp
代替オプション 3 : NSD を使用した組み込み Apache API モジュール (mod_csp.c)
さらに複雑なこのオプションの設定を開始する前に留意する点があります。それは、現在のほとんどの UNIX® システムでは、共有オブジェクトとして実行時にモジュールをリンクする方法 (オプション 1) に対して、スタティック・リンクを使用する方法が持つパフォーマンス上の優位性はほとんどないという点です。
ご使用の Apache のマニュアルとあわせて、これらの説明をよく読んでください。
CSP モジュール・ソース・コードを含めた Apache のビルド
この手順の詳細は、以下の Apache ドキュメントを参照してください。
生成した Apache バイナリの確認
以下のコマンドを実行して、CSP モジュールが Apache コアに正常に追加されたことを確認します (このコマンドを実行すると、現在 Apache に組み込まれているすべてのモジュールが表示されます)。
./httpd -l
以下に例を示します。
Compiled in modules:
core.c
mod_access.c
mod_auth.c
mod_include.c
mod_log_config.c
mod_env.c
mod_setenvif.c
prefork.c
http_core.c
mod_mime.c
mod_status.c
mod_autoindex.c
mod_asis.c
mod_cgi.c
mod_negotiation.c
mod_dir.c
mod_imap.c
mod_actions.c
mod_userdir.c
mod_alias.c
mod_csp.c
実行時の構成
Apache 構成ファイル httpd.conf を編集します。標準の Apache では、このファイルは以下の場所に配置されています。
/usr/apache/conf
Red Hat Linux の場合、httpd.conf の実行時バージョンは以下の場所に配置されています。
/etc/httpd/conf
拡張子 .csp、.cls、または .zen を含む要求されたファイルに対して CSP エンジンを呼び出す場合は、以下のセクションを httpd.conf の最後に追加します。
<LocationMatch "/*\.([Cc][Ss][Pp]|[Cc][Ll][Ss]|[Zz][En][Nn])$">
SetHandler csp-handler
</LocationMatch>
ScriptAliasMatch /csp/bin/Systems/Module.cxw "/opt/cspgateway/bin/nph-CSPcgiSys"
ScriptAliasMatch /csp/bin/RunTime/Module.cxw "/opt/cspgateway/bin/nph-CSPcgi"
Alias /csp/ /opt/cspgateway/csp/
<Directory "/opt/cspgateway/csp">
AllowOverride None
Options MultiViews FollowSymLinks ExecCGI
Require all granted
<FilesMatch "\.(log|ini|pid|exe)$">
Require all denied
</FilesMatch>
<Files CSPnsd>
Require all denied
</Files>
</Directory>
ScriptAlias /csp-bin/ "/opt/cspgateway/bin/"
<Directory "/opt/cspgateway/bin/">
AllowOverride None
Options None
Require all granted
</Directory>
上記の構成ブロックは、Apache 環境で利用できる正規表現 (regex) プロセッサに依存しています。このケースに相当しない場合、結果として CSP ファイルは提供されません ("ファイルが見つかりません" というエラーが返されます)。この状況を修復するには、以下の構成ブロックを
<LocationMatch "/*\.([Cc][Ss][Pp]|[Cc][Ll][Ss]|[Zz][En][Nn])$">
SetHandler csp-handler
</LocationMatch>
以下のブロックと置換します。
CSPFiletypes
Apache に対するすべての要求は、事前に定義されたシーケンス内で実行されるモジュールのセットにより提供されます。CSP モジュールは最初に実行されるモジュールの 1 つです。ただし、その定義が構成ファイルの最後の部分に追加されていることが条件となります。
httpd.conf の変更後に、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-sa
</Location>
例えば、以下のファイルはすべて CSP に送信されて処理されます。
/csp/
csp/samples/menu.csp
csp/sys/
従来、Apache は要求されたファイルの拡張子を基に CSP を呼び出すように構成されてきました。 例えば、以下の (httpd.conf の) 構成ブロックは、ファイルの種類が *.csp、*.cls、*.zen、および *.cxw である場合に CSP で要求を処理可能にするよう Apache に指示しています。
LoadModule csp_module_sa /opt/cspgateway/csp/bin/CSPa22.so
AddHandler csp-handler-sa csp cls zen cxw
このメソッドは Apache v1.3.x で問題なく動作しますが、Apache v2.0.x (およびそれ以降) では動作しない場合があります。
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_sa /opt/cspgateway/csp/bin/CSPa22.so
AddType application/x-csp csp cls zen xxx
MIME タイプを使用してファイルの種類を CSP と関連付けた場合の問題の 1 つに、リソースへのパス (ホスト・ディレクトリ) が物理的に存在することを Apache が確認し、存在しない場合には「ファイルが見つかりません」というエラーを返すことがあります。 しかし、要求されたファイルが物理的に存在することを保証するためのチェックは行われませんが、これは CSP によりサービスを受けるリソースには適切です。なぜならば、このようなリソースは Caché からサービスを受け、Web サーバからは仮想的なものだからです。 したがって、“MIME タイプによる指定” というアプローチは、アプリケーションのパス構造を Web サーバ上に複製できる場合のみ適しています。
Apache API および NSD を使用したゲートウェイの運用および管理
この接続オプションは、CSP ゲートウェイの Network Service Daemon (NSD) に依存します。
-
“Network Service Daemon (NSD) の操作” のセクションの説明に従って、CSP NSD を起動します。
-
Apache の構成 (httpd.conf) を変更した後、その Apache を再起動する必要があります。
Apache と NSD を起動する順序は重要ではありません。
-
CSP ウェブゲートウェイ管理ページにアクセスするには、ブラウザで以下のいずれかの場所を指定します。CSP ページは高性能な組み込みモジュール (mod_csp.c) によって管理されますが、CSP ウェブゲートウェイ管理ページへアクセスするには専用の CGI モジュール (nph-CSPcgiSys) を使用します。
http://localhost:<port_no>/csp/bin/Systems/Module.cxw http://localhost:<port_no>/csp-bin/nph-CSPcgiSys
承認されないユーザであることを通知するエラー・メッセージが表示された場合は、"セキュリティの考慮事項" を参照してください。
.csp、.cls、および .zen 拡張子を含むファイルが要求されると、CSP エンジンが自動的に呼び出されます。以下はその例です。
http://localhost:<port_no>/csp/samples/menu.csp
UNIX®、Linux、および Mac OS X 向けにロック・ダウンした Apache 環境
Apache がロック・ダウンされているために、Apache ファイル・システムの外部のファイルにアクセスするようにサーバを簡単に構成できない場合があります。例えば、Security Enhanced Linux (SELinux) の場合です。
このようなロック・ダウンの構成では、上記のセクションで説明した CSP ゲートウェイ構成で CSP リソースにアクセスしようとすると、HTTP 403 Forbidden のエラー・コードが返されます。これらの安全な構成を最も簡単に使用するには、以下の手順に従います。
/opt/cspgateway/csp
上記にあるファイル・システムを、以下の Apache ルートの場所にコピーします。
/usr/apache/csp
コピーした後、Apache 構成で指定したパスを適切に変更します。
Apache に用意されているディレクトリで機能するように CSP ゲートウェイを構成する方法もあります。これは、上記の方法が失敗した場合にも使用できる方法です。
-
CGI モジュールを以下にコピーします。/usr/apache/cgi-bin/
cp /opt/cspgateway/bin/*cgi* /usr/apache/cgi-bin/
-
API モジュールを以下にコピーします。/usr/apache/modules/
cp /opt/cspgateway/bin/*.so /usr/apache/modules/
-
静的ファイル (およびこれらのディレクトリ内のサブディレクトリ) を以下の場所にコピーします。/usr/apache/htdocs/
cp /cache-install-dir/csp/samples/* /usr/apache/htdocs/csp/samples/ cp /cache-install-dir/csp/broker/* /usr/apache/htdocs/csp/broker cp /cache-install-dir/csp/sys/* /usr/apache/htdocs/csp/sys
-
NSD コンポーネント (必要な場合) を /usr/apache/nsd/ にインストールします。
Apache で提供されるディレクトリを使用すると、httpd.conf での CSP ゲートウェイの構成が簡単になります。修正した構成ブロックを以下に示します。
推奨オプション : Apache API モジュール (CSPa24.so)
LoadModule cspsys_module_sa /usr/apache/modules/CSPap24.so
CSPSYSModulePath /usr/apache/modules/
<Location "/csp/bin/Systems/">
SetHandler cspsys-handler-sa
</Location>
<Location "/csp/bin/RunTime/">
SetHandler csp-handler-sa
</Location>
CSPFiletypes csp cls zen cxw
特殊オプション 1 : NSD を使用した Apache API モジュール (mod_csp.so)
LoadModule csp_module /usr/apache/modules/mod_csp.so
<LocationMatch "/*\.([Cc][Ss][Pp]|[Cc][Ll][Ss]|[Zz][En][Nn])$">
SetHandler csp-handler
</LocationMatch>
ScriptAliasMatch /csp/bin/Systems/Module.cxw "/usr/apache/cgi-bin/nph-CSPcgiSys"
ScriptAliasMatch /csp/bin/RunTime/Module.cxw "/usr/apache/cgi-bin/nph-CSPcgi"
特殊オプション 2 : NSD を使用した CGI モジュール (nph-CSPcgi)
<LocationMatch "/*\.([Cc][Ss][Pp]|[Cc][Ll][Ss]|[Zz][En][Nn])$">
AllowOverride None
Options FollowSymLinks ExecCGI
Require all granted
</LocationMatch>
ScriptAliasMatch /csp/bin/Systems/Module.cxw "/usr/apache/cgi-bin/nph-CSPcgiSys"
ScriptAliasMatch /csp/bin/RunTime/Module.cxw "/usr/apache/cgi-bin/nph-CSPcgi"
ScriptAliasMatch /*\.([Cc][Ss][Pp]|[Cc][Ll][Ss])$ "/usr/apache/cgi-bin/nph-CSPcgi"
特殊オプション 3 : NSD を使用した組み込み Apache API モジュール (mod_csp.c)
<LocationMatch "/*\.([Cc][Ss][Pp]|[Cc][Ll][Ss]|[Zz][En][Nn])$">
SetHandler csp-handler
</LocationMatch>
ScriptAliasMatch /csp/bin/Systems/Module.cxw "/apache/cgi-bin/nph-CSPcgiSys"
ScriptAliasMatch /csp/bin/RunTime/Module.cxw "/usr/apache/cgi-bin/nph-CSPcgi"
Sun Web サーバの代替オプション
Sun Web サーバの特殊オプションは、SD を使用した NSAPI モジュールの 1 つのみです。
Sun のインストール場所 (代替オプション)
以下の CSP ゲートウェイのコンポーネントおよび CSP 静的ファイルをインストールします。
-
NSD モジュールは以下のとおりです。
CSPnsd
NSD モジュールの既定の場所は以下のとおりです。
/opt/cspgateway/csp
NSD は、NSD のホーム・ディレクトリ /opt/cspgateway/csp から実行する必要があります。構成ファイル CSP.INI とイベント・ログ CSP.LOG は、このディレクトリに記述されます。
Caché のアップグレード時に既存のゲートウェイに影響を与えないように、インストール時にこれらのモジュールは共通の場所 /usr/cspgateway/nsd に配置されます。この場所は、特定の Caché インスタンスに関するものではありません。
-
NSAPI と CGI のモジュール
-
CSPcn3.so (提供される場合は、NSD の NSAPI クライアント)
-
CSPcgi.exe (実行時モジュール)
-
nph-CSPcgi.exe (CSPcgi のコピー)
-
CSPcgiSys.exe (システム管理モジュール)
-
nph-CSPcgiSys.exe (CSPcgiSys のコピー)
上記すべてのモジュールが各接続オプションで必要になるわけではありません。各オプションについてのセクションを参照し、実際に必要なモジュールを確認してください。
これらのモジュールの既定の場所は以下のとおりです。
/opt/cspgateway/bin
NSD ベース以外の接続オプションの場合、構成ファイル (CSP.INI) とイベント・ログ (CSP.LOG) はこのディレクトリに書き込まれます。
-
-
ハイパーイベントのコンポーネントの既定の場所は以下のとおりです。
-
CSPBroker.js
-
CSPxmlhttp.js
CSP サンプルおよび管理ポータルで必要なその他の静的リソース (イメージ・ファイルなど) は以下のとおりです。
\cache-install-dir\csp\broker
-
代替オプション 1 : NSD を使用した NSAPI モジュール (CSPcn3.so)
ほとんどの環境では、包括的な NSAPI ベースのソリューション (推奨オプション) が最も適しており、また、パフォーマンスに優れた実装でもあります。運用上の理由から、ホスト Web サーバとは別にゲートウェイを管理する必要がある場合には、NSAPI と NSD の組み合わせが役立ちます。例えば、Web サーバの複数のインスタンスが同じゲートウェイを共有する場合などがこれにあたります。推奨オプションでは、コア Web サーバ・プロセスの各インスタンスが、ゲートウェイの独自のインスタンスに結合します。
構成手順は、推奨オプション “推奨オプション : NSAPI モジュール (CSPn3.so)” で説明した手順と非常によく似ています。重要な違いは以下のとおりです。
推奨オプションの説明に従って、Web サーバのコア Init 指示文のブロックを探します。これらは magnus.conf または obj.conf にあります。コア Init ブロックの前に、以下のセクションを追加します。
Init fn=load-modules shlib=/cache-install-dir/csp/bin/CSPcn3.so funcs=cspc_term,cspc_init,cspc_req
Init fn=cspc_init shlib="/cache-install-dir/csp/bin/CSPcn3.so"
指示文
静的コンポーネントと CGI モジュールを見つけるための指示文
obj.conf の default 指示文セクションを探します。
<Object name="default">
default セクションで、上記の行の後に以下の行を追加します。
NameTrans fn="pfx2dir" from="/csp/samples" dir="/cache-install-dir/csp/samples"
NameTrans fn="pfx2dir" from="/csp/broker" dir="/cache-install-dir/csp/broker"
NameTrans fn="pfx2dir" from="/csp-bin" dir="/cache-install-dir/csp/bin" name="cgi"
CSP 要求を認識および処理するための指示文
obj.conf の最後に以下のセクションを追加します。
<Object ppath="*/*.csp">
Service method=(GET|HEAD|POST) fn=csp_req
</Object>
<Object ppath="*/*.cls">
Service method=(GET|HEAD|POST) fn=csp_req
</Object>
<Object ppath="*/*.zen">
Service method=(GET|HEAD|POST) fn=csp_req
</Object>
NSAPI および NSD を使用したゲートウェイの運用および管理
この接続オプションは、CSP ゲートウェイの Network Service Daemon (NSD) に依存します。
-
“Network Service Daemon (NSD) の操作” の説明に従って、CSP NSD を起動します。
-
Web サーバの構成ファイル (magnus.conf および obj.conf) を変更した後は、その Web サーバを再起動する必要があります。
Web サーバと NSD を起動する順序は重要ではありません。
-
CSP ウェブゲートウェイ管理ページにアクセスするには、ブラウザで以下の場所のいずれかを指定します。CSP ページは高性能なモジュール (CSPcn2.so) を介して提供されますが、CSP ウェブゲートウェイ管理ページへアクセスするには専用の CGI モジュール (nph-CSPcgiSys) を使用します。
http://localhost:<port_no>/csp/bin/Systems/Module.cxw http://localhost:<port_no>/csp-bin/nph-CSPcgiSys
承認されないユーザであることを通知するエラー・メッセージが表示された場合は、"セキュリティの考慮事項" を参照してください。
.csp、.cls、および .zen 拡張子を含むファイルが要求されると、CSP エンジンが自動的に呼び出されます。以下はその例です。
http://localhost:<port_no>/csp/samples/menu.csp
トラブルシューティング
Microsoft Internet Explorer を使用して HTTPS 経由で Apache mod_ssl サーバに接続する際に入出力エラーが発生する場合は、以下のことを試すことができます。 この問題は、以前のバージョンの IE で発生する問題を回避するために Apache を導入した場合に発生することがあります。以下の行は Apache の SSL 構成に含まれています。
BrowserMatch ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
最後の \ と行 downgrade-1.0 force-response-1.0 を削除して、Apache を再起動します。 これにより、HTTP ヘッダが HTTP1.1 から HTTP1.0 にダウングレードされるのを防いで、IE の以前のバージョンで HTTP1.1 を使用する場合に起こるいくつかの問題を回避できるため、実際の環境での問題が解決されることがあります。