Apache の代替オプション (UNIX®/Linux/macOS)
ここでは、UNIX®、Linux、および macOS の InterSystems Web ゲートウェイで使用できる追加 Apache 構成について説明します (ロック・ダウン Apache 環境については別途説明します)。これらのすべての構成を開始するには、最初のセクションをご覧ください。次に、それぞれの構成に該当するセクションの指示に従います。
インストール場所 (すべての特殊オプション)
このセクションでは、Web ゲートウェイ・ファイルと CSP 静的ファイルのディレクトリの場所について説明します。
-
NSD モジュールは以下のとおりです。
CSPnsd
このモジュールの既定の場所は以下のとおりです。
/opt/webgateway/bin
NSD は、NSD のホーム・ディレクトリ /opt/webgateway/bin から実行する必要があります。CSP.ini 構成ファイルと CSP.log ファイル は、このディレクトリに書き込まれます。
InterSystems IRIS® のアップグレード時に既存のゲートウェイに影響を与えないように、インストール時にこれらのモジュールは共通の場所 /opt/webgateway/bin に配置されます。この場所は、特定の InterSystems IRIS インスタンスに関するものではありません。
-
CGI およびその他のダイナミック・リンク・モジュール :
-
CSPcgi (実行時モジュール)
-
nph-CSPcgi (CSPcgi のコピー)
-
CSPcgiSys (システム管理モジュール)
-
nph-CSPcgiSys (CSPcgiSys のコピー)
-
mod_csp24.so (Apache バージョン 2.4.x — 提供される場合は、DSO として機能する Apache モジュール)
InterSystems IRIS のアップグレード時に既存のゲートウェイのインストールに影響を与えないように、インストールの際にこれらのモジュールは以下の共通の場所に配置されます。この場所は、特定の InterSystems IRIS インスタンスに関するものではありません。
/usr/cspgateway/bin
元の場所 (install-dir/csp/bin) は、特定の InterSystems IRIS インスタンスの管理ポータルの提供に必要な Web ゲートウェイ・コンポーネントの保持に使用されます。
Sys が追加されたモジュールは、Web ゲートウェイ管理ページにアクセスします。実行時モジュール (Sys が追加されていないモジュール) は Web ゲートウェイ管理ページにアクセスできません。
-
-
ハイパーイベントのコンポーネントの既定の場所は以下のとおりです。
-
CSPBroker.js
-
CSPxmlhttp.js
CSP サンプルおよび管理ポータルで必要なその他の静的リソース (イメージ・ファイルなど) は以下のとおりです。
install-dir\csp\broker
-
Apache API モジュールを使用する場合の要件 (推奨オプションおよび代替オプション 1)
推奨オプションまたは特殊オプション 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)
使用するディストリビューションに、事前に構築された共有オブジェクトとして CSP モジュール (mod_csp24.so) が付属している場合は、"実行時の構成" から開始してください。付属のソース・ファイル mod_csp.c から共有オブジェクトを構築する場合は、以下の "方法 1" または "方法 2" を選択してください。方法 1 をお勧めします。
共有オブジェクトの生成については、ご使用の Apache のマニュアルとあわせて、以下の説明もお読みください。以下の説明は、Apache のルート・ディレクトリが /usr/apache であることを前提としています。実際は、多くの場合、このディレクトリ名に Apache のバージョン番号が追加されます。
方法 1 : apxs (APache eXtenSion) ツールを使用した、共有オブジェクトとしての CSP モジュールのビルド
以下のコマンドを実行すると、Apache 拡張ツール apxs を使用して、Apache の /modules ディレクトリに共有ライブラリ mod_csp24.so がビルドおよびインストールされます。モジュールをロードする指示文が、Apache 構成ファイル /conf/httpd.conf に追加されます。
apxs –c –o mod_csp24.so mod_csp.c
生成された共有オブジェクト (mod_csp24.so) をディレクトリ /opt/webgateway/bin にコピーします。
方法 2 : 共有オブジェクトとしての CSP モジュールの手動ビルド
CSP モジュールを共有オブジェクトとして手動でビルドするには、以下の手順を実行します。
-
モジュール・ソース・ファイル mod_csp.c をディレクトリ /usr/apache/src/modules/extra にインストールします。
-
/usr/apache/src ディレクトリに戻り、Configuration ファイルを編集します。このファイルの末尾に近いところから、以下の行を見つけてください。
# AddModule modules/example/mod_example.o
この行の後に、以下の行を追加してください。
ShareModule modules/extra/mod_csp24.so
-
以下のコマンドを実行して、構築プロセスを構成します。
./Configure
-
以下のコマンドを実行して、共有オブジェクトを構築します。
make
共有オブジェクト mod_csp24.so を /usr/apache/src/modules/extra に作成します。
apxs ツールの詳細は、Apache ドキュメント (https://httpd.apache.org/docs/2.4/programs/apxs.htmlOpens in a new tab) を参照してください。
実行時の構成
Apache 構成ファイル httpd.conf を編集します。標準の Apache ディストリビューションでは、このファイルは以下の場所に配置されています。
/usr/apache/conf
Red Hat Linux の場合、httpd.conf の実行時バージョンは以下の場所に配置されています。
/etc/httpd/conf
拡張子 .csp、.cls、または .zen を含む要求されたファイルに対して CSP エンジンを呼び出す場合は、以下のセクションを httpd.conf の最後に追加します。
LoadModule csp_module /opt/webgateway/bin/mod_csp24.so
CSPFileTypes csp cls zen cxw
Alias /csp/ /opt/webgateway/csp/
<Directory "/opt/webgateway/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/webgateway/bin/"
ScriptAliasMatch /csp/bin/Systems/Module.cxw "/opt/webgateway/bin/nph-CSPcgiSys"
ScriptAliasMatch /csp/bin/RunTime/Module.cxw "/opt/webgateway/bin/nph-CSPcgi"
<Directory "/opt/webgateway/bin/">
AllowOverride None
Options None
Require all granted
</Directory>
httpd.conf の変更後に、Apache を再起動します。
接続プーリングの制御
接続プールのサイズは、http.conf で指定されている以下の Apache 構成パラメータで制御できます。
CSPMaxPooledNSDConnections <no>
このパラメータが存在しない場合は、既定値の 32 が内部的に使用されます。これは事実上、以下と同じです。
CSPMaxPooledNSDConnections 32
接続プーリングをオフにするには、以下のようにしてこのパラメータをゼロに設定します。
CSPMaxPooledNSDConnections 0
何らかの理由により、従来の操作モード (非対称モード) の使用 (これにより、Web ゲートウェイ側の接続が閉じられ、応答の送信終了が通知される) が必要になった場合は、このパラメータをマイナス 1 に設定します。
CSPMaxPooledNSDConnections -1
Apache API および NSD を使用した Web ゲートウェイの運用および管理
この接続オプションは、Web ゲートウェイの Network Service Daemon (NSD) に依存します。
-
"NSD の操作" の説明に従って、CSP NSD を起動します。
-
Apache の構成 (httpd.conf) を変更した後、その Apache を再起動する必要があります。
Apache と NSD を起動する順序は重要ではありません。
-
Web ゲートウェイ管理ページにアクセスするには、ブラウザに以下の URL を入力します。
http://<hostname>:<port_no>/csp-bin/nph-CSPcgiSys
承認されないユーザであることを通知するエラー・メッセージが表示された場合は、"追加クライアント・アドレスからのアクセスの有効化" を参照してください。
代替オプション 2 : NSD を使用した CGI モジュール (nph-CSPcgi)
インターシステムズのファイル・タイプを認識し、それらを Web ゲートウェイに渡して処理するように 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/webgateway/bin/nph-CSPcgiSys"
ScriptAliasMatch /csp/bin/RunTime/Module.cxw "/opt/webgateway/bin/nph-CSPcgi"
ScriptAliasMatch /*\.([Cc][Ss][Pp]|[Cc][Ll][Ss])$ "/opt/webgateway/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/webgateway/bin/"
<Directory "/opt/webgateway/bin/">
AllowOverride None
Options None
Require all granted
</Directory>
上記の構成ブロックは、Apache 環境で利用できる正規表現 (regex) プロセッサに依存しています。このケースに相当しない場合、結果として CSP ファイルは提供されません ("ファイルが見つかりません" というエラーが返されます)。この状況を修復するには、CSP ファイル拡張子で連結を行う代わりに、使用している Web アプリケーションの仮想のルート位置と、CGI モジュールを連結させます。例えば、使用している Web アプリケーションが /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/webgateway/bin/nph-CSPcgi"
以下のブロックと置換します。
<Location "/csp">
AllowOverride None
Options FollowSymLinks ExecCGI
Require all granted
</Location>
ScriptAlias /csp "/opt/webgateway/bin/nph-CSPcgi"
これらの指示文は、次のフォームの URL に対して作用します。<baseURL> はインスタンスのベース URL です。
http://<baseURL>/csp/*.csp
この構成ブロックを、他のルート位置で繰り返します。例えば、フォームの URL の /myapps に対して同様の処理を繰り返します。
http://<baseURL>/myapps/*.csp
regex の問題を回避するには、CSP MIME タイプと組み合わせて Action 指示文を使用する方法もあります。ただし、Action は本質的にコンテンツに対するフィルタ技術なので、InterSystems IRIS サーバが別のコンピュータにインストールされている場合でも、CSP ファイルが物理的に Web サーバ・ホストに存在している必要があります。この方法を使用する場合は、最初に新規の MIME タイプを Apache のmime.types ファイルの最後に追加し、それを CSP コンテンツを表すファイル・タイプと連結させます。mime.types ファイルは、httpd.conf ファイルと同じディレクトリにあります。
text/csp csp cls
次に、httpd.conf の CGI 構成ブロックの最後に、Action 指示文を追加します。
Alias /csp/ /opt/webgateway/csp/
<Directory "/opt/webgateway/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/webgateway/bin/"
<Directory "/opt/webgateway/bin/">
AllowOverride None
Options None
Require all granted
</Directory>
Action text/csp “/csp-bin/nph-CSPcgi”
httpd.conf の変更後に、Apache を再起動します。
CGI はオープン・スタンダードなので、CSP の CGI モジュールはすべての Web サーバで作動します。
CGI および NSD を使用した Web ゲートウェイの運用および管理
この接続オプションは、Web ゲートウェイの Network Service Daemon (NSD) に依存します。
-
"NSD の操作" の説明に従って、CSP NSD を起動します。
-
Apache の構成 (httpd.conf) を変更した後、その Apache を再起動する必要があります。
Apache と NSD を起動する順序は重要ではありません。
-
Web ゲートウェイ管理ページにアクセスするには、ブラウザに以下のいずれかの URL を入力します。
http://<hostname>:<port_no>/csp/bin/Systems/Module.cxw http://<hostname>:<port_no>/csp-bin/nph-CSPcgiSys
承認されないユーザであることを通知するエラー・メッセージが表示された場合は、"追加クライアント・アドレスからのアクセスの有効化" を参照してください。
代替オプション 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 の最後に追加します。
CSPFileTypes csp cls zen cxw
ScriptAliasMatch /csp/bin/Systems/Module.cxw "/opt/webgateway/bin/nph-CSPcgiSys"
ScriptAliasMatch /csp/bin/RunTime/Module.cxw "/opt/webgateway/bin/nph-CSPcgi"
Alias /csp/ /opt/webgateway/csp/
<Directory "/opt/webgateway/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/webgateway/bin/"
<Directory "/opt/webgateway/bin/">
AllowOverride None
Options None
Require all granted
</Directory>
Apache に対するすべての要求は、事前に定義されたシーケンス内で実行されるモジュールのセットにより提供されます。CSP モジュールは最初に実行されるモジュールの 1 つです。ただし、その定義が構成ファイルの最後の部分に追加されていることが条件となります。
httpd.conf の変更後に、Apache を再起動します。
Apache API および NSD を使用した Web ゲートウェイの運用および管理
この接続オプションは、Web ゲートウェイの Network Service Daemon (NSD) に依存します。
-
"NSD の操作" の説明に従って、CSP NSD を起動します。
-
Apache の構成 (httpd.conf) を変更した後、その Apache を再起動する必要があります。
Apache と NSD を起動する順序は重要ではありません。
-
Web ゲートウェイ管理ページにアクセスするには、ブラウザで以下の場所のいずれかを指定します。
http://<hostname>:<port_no>/csp/bin/Systems/Module.cxw http://<hostname>:<port_no>/csp-bin/nph-CSPcgiSys
承認されないユーザであることを通知するエラー・メッセージが表示された場合は、"追加クライアント・アドレスからのアクセスの有効化" を参照してください。