Web ゲートウェイと連携させるための IIS の構成 (Windows)
ここでは、InterSystems Web ゲートウェイで使用するための、既存の Microsoft IIS Web サーバの構成方法について説明します。(Windows では、その他の選択肢として、Apache と Nginx がありますが、この場合のオプションはその他のオペレーティング・システムとは異なります。)
Web ゲートウェイのスタンドアロン・インストーラを使用して Web ゲートウェイをインストールする場合は、既存の Microsoft IIS Web サーバを自動的に構成するオプションを選択できます。このオプションを選択しない場合は、Web サーバを手動で構成できます。その方法をこのページで説明します。
一般的な手順 (すべてのバージョン)
IIS を Web サーバとして使用している場合は、以下の手順に従って、Web サーバを構成します。
IIS 7 以降を使用している場合は、Microsoft IIS 7 のセクションを参照してください。一般的ではない構成がある場合は、"IIS 7 以降の代替オプション" を参照してください。
Web ゲートウェイ・コンポーネントに対する許可の設定
選択した Web ゲートウェイ構成オプションに関係なく、標準の IIS ドキュメント・ルート (例 : C:\inetpub\wwwroot) 以外の場所に保持されている Web リソースに適切な許可を割り当てる必要があります。
既定では、IIS 7 は Web アプリケーションのユーザに対して、あらかじめ構成されたドキュメント・ルートの範囲外にあるものへのアクセスを一切許可しません。ただし、以下のユーザまたはグループに対して、このような外部リソースへの読み取りと実行および書き込み許可を割り当てている場合は例外です。
[machine_name]\IIS_IUSRS
および、
[machine_name]\Users
IIS_IUSRS は IIS ワーカ・プロセスが動作するユーザ (グループ) を表していることに注意してください。これは、バージョン 7 より前の IIS バージョンで使用されていた IUSR_[machine_name] ユーザ・グループに替わるものです。IIS を通じてコントロールされるアプリケーション (Web ゲートウェイなど) は、IIS_IUSRS に割り当てられた特権のレベルで動作します。
CSP では、Web サーバのルートの外側にあるリソースには、通常、以下のものがあります。
Web ゲートウェイのバイナリ・コンポーネント :
C:\Inetpub\CSPGateway
静的ファイル・コンポーネント :
install-dir\CSP\
Windows エクスプローラ経由でこれらのフォルダに手動で特権を割り当てるには、以下の手順に従って操作します。
-
フォルダ名を右クリックし、[プロパティ] を選択します。
-
[セキュリティ] タブを選択します。
-
[編集] を選択します。
-
[追加] を選択します。
-
[選択するオブジェクト名を入力してください] テキスト・ボックスに以下のように入力します。
[machine_name]\IIS_IUSRS
-
[名前の確認]、[OK] の順に選択します。
-
[グループまたはユーザー名] ウィンドウで [[machine_name]\IIS_IUSRS] を選択してから、以下の操作を実行します。
-
[許可] ウィンドウで [読み取りと実行] および [書き込み] 許可を割り当てます。
-
[適用]、[OK] の順に選択します。
-
[[machine_name]\Users] ユーザ・グループについて、上記の処理を繰り返します。
IIS ユーザ・グループには、Web ゲートウェイの構成ファイルとログ・ファイルに対する完全な読み取りおよび書き込み許可が必要です。例えば、Windows のコマンド・プロンプトで、以下を入力します。
cacls CSP.ini /E /G IIS_IUSRS:F
cacls CSP.log /E /G IIS_IUSRS:F
もちろん、この操作は Windows エクスプローラ経由でもできます。
Web アプリケーション・パスの構成
このセクションでは、IIS で Web アプリケーション・パス (csp など) を構成するための手順について説明します。これらの手順は、IIS のすべての Web ゲートウェイ構成オプションに共通です。
IIS の構成は、[インターネット インフォメーション サービス (IIS) マネージャ] コントロール パネルで行います。ドキュメント・ルートの下で構成したサブディレクトリは、[Virtual] または [Application] に分類されます。[Virtual] サブディレクトリ (またはエイリアス) は物理的な同等物 (Windows のディレクトリ) にマップされます。同じことは Applications に分類されたサブディレクトリにもいえますが、ただし、物理的な同等物が定義できるほか、アプリケーションを特定のアプリケーション・プールに関連付けられるという点が異なります。既定値は DefaultAppPool です。
Web アプリケーションには Web ゲートウェイを通じてサービスが提供されるので、ホスト・サブディレクトリ (/csp など) は [Applications] として構成する必要があります。
既定の CSP 構成では、/csp アプリケーション・パスは物理位置 install-dir\CSP にマップされます。静的ファイルはすべて、このルートの下 (\csp\broker…) に置かれます。
-
[インターネット インフォメーション サービス (IIS) マネージャ] を開きます。
-
左側のパネルで、最上位レベルを展開して [Web サイト] セクション、[既定の Web サイト] セクションの順に表示します。[既定の Web サイト] セクションをハイライト表示します。
[MACHINE_NAME] ([machine_name]\[user_name]) Web Sites Default Web Site
-
右側のパネルで、[アプリケーションの表示] を選択します。
-
もう一度、右側のパネルで、[アプリケーション追加] を選択します。
-
[アプリケーション追加] ダイアログに以下のように入力します。
エイリアス : csp
物理パス : install-dir\CSP\
-
[OK] を選択します。
代替オプションに基づく Web ゲートウェイ・ソリューションを使用している場合は、/csp アプリケーションの下に /bin というアプリケーションをセットアップします。Web ゲートウェイ・バイナリを保持している物理ディレクトリにこれをマップします。以下はその例です。
アプリケーション /csp/bin を C:\Inetpub\CSPGateway にマップします。
/bin を含む URLの有効化
InterSystems IRIS インストーラを使用して Web ゲートウェイをインストールしている場合、この手順は自動的に実行されています。Web ゲートウェイを手動でインストールする場合には、この手順を実行する必要があります(詳細およびこの手順に代わる方法については、次の外部 Web サイト https://weblogs.asp.net/owscott/iis7-blocks-viewing-access-to-files-in-bin-and-other-asp-net-foldersOpens in a new tab を参照)。/bin を含む URL を有効にするには、applicationHost.config ファイルに以下の位置タグを追加します。
<location path="sitename.com/subfolder/bin/debug">
<system.webServer>
<security>
<requestFiltering>
<hiddenSegments>
<remove segment="bin" />
</hiddenSegments>
</requestFiltering>
</security>
</system.webServer>
</location>
IIS の再起動
このセクションでは、各種コントロール・パネル経由で IIS を再起動したときに何が起こるかについて説明します。
アクティブな IIS インストールに対する構成変更の大半はリアルタイムで行うことができます。しかし、[インターネット インフォメーション サービス (IIS) マネージャ] コントロール・パネルには停止、開始、および再起動オプションが用意されています。これらのオプションは Web サーバ構成の更新には便利ですが、その結果、アクティブ Web ゲートウェイの再初期化が行われることはありません (つまり、Web ゲートウェイの DLL は再ロードされません)。
Web ゲートウェイ・モジュールを再ロードするために IIS を強制的に再起動する場合、メインの Windows [サービス] コントロール・パネルを使用して World Wide Web Publishing サービスを再起動する必要があります。
トラブルシューティング
このセクションでは、IIS で使用するためにサードパーティ・モジュール (ネイティブ・モジュールおよび ISAPI モジュールの両方) を構成しているときによく発生する問題について説明します。
最もよく発生する問題は、再構成後、IIS への要求が失敗し、以下のエラーが表示されるというものです。
Service Unavailable
HTTP Error 503. The service is unavailable.
これは通常、既定のアプリケーション・プールが終了していることを示します。
-
[インターネット インフォメーション サービス (IIS) マネージャ] ウィンドウを開きます。
-
左側のパネルで、最上位レベルを展開します。[アプリケーション プール] セクションが表示されます。
[MACHINE_NAME] ([machine_name]\[user_name])
アプリケーション・プール
-
既定のアプリケーション・プール (DefaultAppPool)、またはサーバで使用が構成されているアプリケーション・プールのステータスが [開始] になっていることを確認します。
-
必要に応じて、右側のパネルのオプションを使用して、アプリケーション・プールを再開します。
-
それでも問題が解決されない場合は、メインの Windows イベント・ログ ([アプリケーション] セクション内) を見て、ヒントを探してください。特に、次のエラー・メッセージを確認してください。
Failed to find the RegisterModule entrypoint in the module DLL C:\Inetpub\CSPGateway\CSPms.dll.The data is the error.
例えば、これは、使用しているバージョンの Web ゲートウェイ DLL が、このネイティブ・モジュール・インタフェースを実装していないことを示します。インターシステムズから最新の DLL を入手するか、または従来の ISAPI インタフェースで動作するように Web ゲートウェイを構成します。
すべてのソフトウェアと同様、一時的な問題が再起動により解決されることはよくあります。IIS を完全に再起動するには、メインの Windows サービス・コントロール・パネルから World Wide Web Publishing サービスを再起動します。
ファイル拡張子をマップするのにワイルドカードスクリプトマップの追加ユーティリティを使用しないでください。使用すると、「このハンドラーに対して指定されたモジュールが、モジュールの一覧にありません。スクリプト マップ ハンドラー マッピングを追加する場合は、モジュールの一覧に IsapiModule または CgiModule が存在している必要があります。」というエラーが発生する可能性があります。 代わりに、モジュールマップの追加を使用し、ワイルドカードを指定してファイル拡張子をマップしてください。
/bin を含む URL が機能しない場合には、/bin を含む URLの有効化の手動手順を参照してください。
追加手順 : Microsoft IIS 7 以降
Microsoft ISAPI 拡張 (CSPms.dll、CSPmsSys.dll、および CSPcms.dll) は、IIS 7 以降のネイティブ・モジュール・インタフェースに直接作用できるように構成されています。
InterSystems IRIS で提供される Web ゲートウェイ・モジュールは、IIS 7 のネイティブ・モジュールと共に動作できます。また、ISAPI 拡張機能と組み合わせて使用することもできます。NSD を使用しているユーザ用に追加の構成オプションがあります。このセクションでは、ネイティブ・モジュールで動作するように IIS 7 Web サーバを構成する方法を説明します。その他の構成については、"IIS 7 以降の代替オプション" を参照してください。
IIS 7 のインストール場所
以下の Web ゲートウェイのコンポーネントおよび CSP 静的ファイルをインストールします。
-
ネイティブ・モジュールの既定の場所
-
CSPms.dll (実行時モジュール)
-
CSPmsSys.dll (システム管理モジュール)
これらのモジュールの既定の場所は以下のとおりです。
C:\Inetpub\CSPGateway
NSD ベース以外の接続オプションの場合、構成ファイルとログ・ファイルはこのディレクトリに書き込まれます。
-
-
ハイパーイベントのコンポーネント
-
CSPBroker.js
-
CSPxmlhttp.js
これらのファイルの既定の場所は以下のとおりです。
install-dir\csp\broker
-
-
管理ポータルで使用するその他の静的リソース
管理ポータルでは、(イメージ・ファイルなど) いくつかの静的な Web リソースが必要になります。これらのファイルの既定の場所は以下のとおりです。
install-dir\csp\sys
推奨オプション : ネイティブ・モジュールの使用 (CSPms*.dll)
これは最も多く使用されている推奨オプションです。これは、IIS 7 で導入されたネイティブ・モジュール・インタフェースを使用します。このオプションでは最適なパフォーマンスが得られます。
その他の構成オプションについては、"IIS 7 以降の代替オプション (Windows)" および "NSD の使用法 (Windows)" を参照してください。
インターシステムズのファイル・タイプを認識し、それらを Web ゲートウェイに渡して処理するように、ネイティブ・モジュールの登録および Web サーバの構成を行います。インストールで必要となる可能性のある追加ファイル (例えば、分析に必要な特別な CSP リソース) をすべて含めます。
ネイティブ・モジュールの登録
DLL : CSPms.dll および CSPmsSys.dll
これらのモジュールを使用できるようにするには、まず IIS に登録する必要があります。これは、[インターネット インフォメーション サービス (IIS) マネージャ] コントロール パネルで行います。
-
[インターネット インフォメーション サービス (IIS) マネージャ] ウィンドウを開きます。
-
左側のパネルで、[MACHINE_NAME] ([machine_name]\[user_name]) をハイライト表示します。
-
中央のパネルで、[モジュール] アイコンをダブルクリックします
-
右側のパネルで、[ネイティブ モジュールの追加] (または [ネイティブ モジュールの構成]) を選択します。正確な表現は使用中の IIS のビルドによって異なります。
-
[登録] を選択し、[ネイティブ モジュールの登録] ダイアログに以下を入力します。
名前 : CSPms
パス : C:\Inetpub\CSPGateway\CSPms.dll
[OK] を選択します。
-
左側のパネルで、最上位レベルを展開し、[Web サイト]、[既定の Web サイト] の順に展開します。[既定の Web サイト] をハイライト表示します。
[MACHINE_NAME] ([machine_name]\[user_name]) Web Sites Default Web Site
-
右側のパネルで、[ネイティブ モジュールの追加] を選択します。
-
[CSPms] を選択して、[OK] を選択します。
InterSystems IRIS ファイル拡張子のマッピング
ここでのファイル拡張子のマッピング処理で、ワイルドカードスクリプトマップの追加ユーティリティを使用しないでください。使用した場合はエラーとなります。代わりに、モジュールマップの追加というユーティリティを使用します。
以下のように、インターシステムズのファイル・タイプを Web ゲートウェイのネイティブ・モジュールにマップします。
拡張子 | ネイティブ・モジュール | バイナリ |
---|---|---|
*.csp | CSPms | C:\Inetpub\CSPGateway\CSPms.dll |
*.cls | CSPms | C:\Inetpub\CSPGateway\CSPms.dll |
*.zen | CSPms | C:\Inetpub\CSPGateway\CSPms.dll |
*.cxw | CSPms | C:\Inetpub\CSPGateway\CSPms.dll |
これらのマッピングは REST をサポートしていません。REST を使用する場合は、"追加ファイル・タイプのマッピング" を参照してください。
-
[インターネット インフォメーション サービス (IIS) マネージャ] ウィンドウを開きます。
-
左側のパネルで、最上位レベルを展開し、[Web サイト]、[既定の Web サイト] セクションの順に展開します。[既定の Web サイト] をハイライト表示します。
[MACHINE_NAME] ([machine_name]\[user_name]) Web Sites Default Web Site
Note:これによって、Web サイト全体に対して CSP が有効になります。特定の仮想サブディレクトリ (/csp/ など) に CSP の使用を制限するには、マッピングを作成する前に ([既定の Web サイト] の下の) 適切なサブディレクトリにコントロールをフォーカスします。CSP のコンテンツを処理するそれぞれの仮想サブディレクトリについて、この手順を繰り返してください。
-
中央のパネルで、[ハンドラ マッピング] アイコンをダブルクリックします。
-
右側のパネルで、[モジュール マップの追加] を選択します。
-
[モジュール マップの追加] ダイアログに以下の詳細を入力します。
要求パス : *.csp
モジュール : (ドロップダウン・リストから [CSPms] を選択します)
名前 : WebGateway_csp
-
[要求の制限] を選択し、[要求がマップされている場合のみハンドラを呼び出す] の横にあるボックスにチェックが付けられていないことを確認します。このアクションにより、[ハンドラ マッピング] テーブルに示すように、[パスの種類] の値が [未指定] に設定されます。
-
[OK] を選択して [モジュール マップの追加] ダイアログに戻り、もう一度、[OK] を選択します。
-
以上の手順を繰り返し、以下のモジュール・マップを追加します。
要求パス : *.cls
モジュール : (リストから [CSPms] を選択します)
名前 : WebGateway_cls
要求パス : *.zen
モジュール : (リストから [CSPms] を選択します)
名前 : WebGateway_zen
要求パス : *.cxw
モジュール : (リストから [CSPms] を選択します)
名前 : WebGatewayManagement
追加ファイル・タイプのマッピング
追加ファイル・タイプを Web ゲートウェイに送信するように Web サーバを構成するには、追加のファイル拡張子に対し、既定のエントリと同様の構成エントリを追加します。以下に例を示します。
拡張子 | ネイティブ・モジュール | バイナリ |
---|---|---|
*.xxx | CSPms | C:\Inetpub\CSPGateway\CSPms.dll |
iWeb ゲートウェイを経由して他の静的ファイルを処理する必要がある場合、必要なファイル・タイプのマッピングを追加して、それらのファイルをロードできるようにします。特に、この Web サーバを経由して管理ポータルにアクセスする必要がある場合は、ファイル・タイプ .jpg、.gif、.png、.css、および .js のマッピングを追加します。追加しない場合、管理ポータルのイメージ、Javascript、およびそのスタイル・シートは欠落します。
指定されたパスに対するすべての要求を送信するように Web サーバを構成するには、このパスについて、以下のワイルドカードをセットアップします。
拡張子 | ネイティブ・モジュール | バイナリ |
---|---|---|
* | CSPms | C:\Inetpub\CSPGateway\CSPms.dll |
REST を使用する場合は、このマッピングを使用する必要があります。
Web ゲートウェイの運用および管理
Web ゲートウェイのシステム管理スイートへアクセスするには、ブラウザで以下の場所を指定します。
http://<ip_address>/csp/bin/Systems/Module.cxw
承認されていないユーザであることを通知するエラー・メッセージが表示された場合は、"Web ゲートウェイとセキュリティ" のセキュリティに関するメモを参照してください。
SOAP フォルトの詳細を返すための IIS の構成
エラーが発生している InterSystems IRIS Web サービスは、関連する SOAP フォルトの詳細を含めずに HTTP 500 エラーを返すことがあります。既定では、IIS は広範なエラー情報をローカル・クライアントに対してのみ返します。 しかし、構成ファイル web.config 内の <httpErrors> 要素でこの動作を変更できます。変更するには、以下のセクションを追加して、詳細なエラー情報をすべてのクライアントに配信するように IIS に指示します。
<configuration>
<system.webServer>
<httpErrors errorMode="Detailed" />
</system.webServer>
</configuration>
ホスト環境に関する機密情報がクライアントに公開されることがあるため、この方法を使用する場合は注意が必要です。 errorMode="Detailed" の使用に関するセキュリティ上の問題を回避する代わりの方法は、existingResponse="PassThrough" 指示文を使用することです。
<configuration>
<system.webServer>
<httpErrors existingResponse="PassThrough" />
</system.webServer>
</configuration>
構成の変更後に、IIS を再起動します。
これらの変更は、IIS web.config ファイルに対して手動で行うことができます。または、より適切で、エラーの発生が少ない方法を選択するには、IIS マネージャに組み込まれている構成エディタ を使用します。
-
IIS マネージャの左側の [接続] パネルから、Web サービスに対応するパスを選択します。 例 :[既定の Web サイト] の後に csp を選択。
-
中央のパネル下部の [管理] という見出しの下で、[構成エディタ] をダブルクリックします。
-
[セクション] のラベルが付いた上部の [構成エディタ] ドロップダウンで、system.webServer を展開し、[httpErrors] をクリックします。
-
[existingResponse] の横にある値をクリックし、ドロップダウンを使用してオプションを表示します。 [PassThrough] を選択します。
-
右側の [アクション] ペインで、[適用] をクリックします。
-
構成の変更後に、IIS を再起動します。
IIS でのエラー処理の詳細は、以下を参照してください。
https://docs.microsoft.com/en-us/iis/configuration/system.webServer/httpErrors/Opens in a new tab