Liberty プロファイルの Web サーバー・プラグインの構成
Web サーバーが動的リソースの HTTP 要求を受け取ったときにその要求が Liberty プロファイルに転送されるように、Web サーバー・プラグインを構成することができます。
このタスクについて
Web サーバー・プラグインは、サポートされる Web サーバーから 1 つ以上のアプ リケーション・サーバーに HTTP 要求を転送するために使用されます。プラグインは、要求を受け取り、その要求を plugin-cfg.xml ファイル内の構成データと照合します。構成データは、 HTTP 要求の URI を、アプリケーション・サーバーのホスト名にマップします。その後、Web サーバー・プラグインは、この情報を使用して、アプリケーション・サーバーに要求を転送します。
手順
- サポートされる Web サーバー (IBM® WebSphere® Application Server
に付属する IBM HTTP Server など) をインストールします。『IBM HTTP Server のインストール』を参照してください。
IBM i で提供される Web サーバーは、IBM i V6R1 の場合は製品 5761-DG1、IBM i V7R1 の場合は 5770-DG1 によって既にインストールされています。IBM i Web サーバーは、IBM HTTP Server for IBM i と呼ばれます。WebSphere Application Server で提供される IBM HTTP Server は、IBM i 上では稼働しません。
- Web サーバー・プラグインと WebSphere Customization Toolbox (WCT) をインストールします。
- Web サーバー・プラグインをインストールするには、
『Web サーバー・プラグインのインストールおよび構成』を参照してください。
IBM i の場合、『Web サーバー・プラグインのインストールおよび構成』を参照してください。
- WCT をインストールするには、『WebSphere Customization Toolbox のインストールおよび使用』を参照してください。
IBM i の場合、ワークステーションに WCT をインストールします。ただし、WCT ツールをインストールする必要はありません。後のステップで jconsole Java™ ユーティリティーを実行するときは、WCT と一緒にインストールされる Java SDK を使用します。
- Web サーバー・プラグインをインストールするには、
『Web サーバー・プラグインのインストールおよび構成』を参照してください。
WCT を使用して、選択した Web サーバーの Web サーバー・プラグインを構成します。
- WCT でプロンプトが出されたら、「リモート」のシナリオを選択し、 Liberty プロファイルがアクセス可能になるホスト名を指定します。
- 生成された configureWebserver スクリプトは、Liberty プロファイルで必要ないため、コピーや実行をしないでください。
- アプリケーションをホストするサーバーを開始し、localConnector-1.0 フィーチャー
、または IBM i のプラグインを構成している場合は restConnector-1.0 フィーチャー、およびその他の必要なフィーチャーがサーバー構成に含まれていることを確認します。
サーバー構成ファイルの pluginConfiguration エレメントで、Web サーバーから要求を転送するための webserverPort 属性および webserverSecurePort 属性を指定できます。デフォルトでは、webserverPort の値は 80、webserverSecurePort の値は 443 です。ただし、これらの設定を変更することが必要な場合があります。例えば、Linux のようなプラットフォームでは、非 root ユーザーは、1024 より大きいポート番号を使用する必要があります。
pluginConfiguration エレメントの構成可能なすべての属性については、 『server.xml ファイルの構成エレメント』を参照してください。
server.xml サーバー構成ファイルの例を以下に示します。<server description="new server"> <featureManager> <feature>localConnector-1.0</feature> <feature>jsp-2.2</feature> </featureManager> <keyStore id="defaultKeyStore" password="{xor}PGY6bW4wOyw+" /> <httpEndpoint id="defaultHttpEndpoint" host="*" httpPort="9080"> <tcpOptions soReuseAddr="true" /> </httpEndpoint> <pluginConfiguration webserverPort="80" webserverSecurePort="443" sslKeyringLocation="path/to/sslkeyring" sslStashfileLocation="path/to/stashfile" sslCertlabel="definedbyuser"/> <application type="war" id="myapp" name="myapp" location="${server.config.dir}/apps/myapp.war" /> <application type="war" id="snoop" name="snoop" location="${server.config.dir}/apps/snoop.war" /> </server>
IBM i の場合は、localConnector-1.0 フィーチャーでなく restConnector-1.0 フィーチャーを組み込みます。 詳細については、Liberty プロファイルへのセキュア JMX 接続の構成を参照してください。
IBM i の server.xml サーバー構成ファイルの例を以下に示します。
<server description="new server"> <!-- Enable features --> <featureManager> <feature>jsp-2.2</feature> <feature>restConnector-1.0</feature> </featureManager> <keyStore id="defaultKeyStore" password="{xor}PGY6bW4wOyw+" /> <httpEndpoint id="defaultHttpEndpoint" host="*" httpPort="9080" httpsPort="9443"> <tcpOptions soReuseAddr="true" /> </httpEndpoint> <quickStartSecurity userName="testuser" userPassword="security" /> <pluginConfiguration webserverPort="80" webserverSecurePort="443" sslKeyringLocation="path/to/sslkeyring" sslStashfileLocation="path/to/stashfile" sslCertlabel="definedbyuser"/> <application type="war" id="myapp" name="myapp" location="${server.config.dir}/apps/myapp.war" /> <application type="war" id="snoop" name="snoop" location="${server.config.dir}/apps/snoop.war" /> </server>
注:- SSL を使用するように Web サーバー・プラグインを構成する場合は、Liberty プロファイルの ssl-1.0 Liberty フィーチャーを使用可能にしてください。
- Web サーバーがデフォルト・ポートを使用する場合、 server.xml ファイルに pluginConfiguration エレメントを組み込む必要はありません。
- Web サーバー・プラグインが使用する鍵ストアは、CMS 鍵ストアでなければなりません。これは、鍵管理 (iKeyman) ユーティリティーを使用して作成できます。Web サーバー・プラグインの鍵ストアと Liberty プロファイルの鍵ストアの間で署名者証明書を交換する必要がありますが、 Liberty プロファイルまたは完全プロファイルで作成された JKS 鍵ストアを Web サーバー・プラグインに使用することはできません。
- プラグインのログ・ファイルのロケーションを構成するには、
server.xml ファイルに次のコード・スニペットを追加してください。
または<Log LogLevel="Error" Name="String¥logs¥String¥http_plugin.log"/>
<Log LogLevel="Error" Name="/path to log file/http_plugin.log"/>
- WebSphere:name=com.ibm.ws.jmx.mbeans.generatePluginConfig MBean を呼び出して、
Liberty プロファイル・サーバーおよびアプリケーションの plugin-cfg.xml ファイルを生成します。
- 同じ Java SDK をサーバーとして使用して、コマンド・ウィンドウで jconsole Java ユーティリティーを実行します。 例えば、以下のコマンドを実行します。サーバー・プロセスが、接続を待機している選択項目にリストされます。
c:¥java¥bin¥jconsole
IBM i の場合、WCT と一緒にワークステーションにインストールされた Java SDK を使用して、コマンド・ウィンドウから jconsole Java ユーティリティーを実行します。例えば、以下のステップを実行します。- ワークステーション上に C:¥restClient ディレクトリーを作成します。
- ${wlp.install.dir}/clients/restConnector.jar をワークステーション上の C:¥restClient ディレクトリーにコピーします。
- ${server.output.dir}/resources/security/key.jks をワークステーション上の C:¥restClient ディレクトリーにコピーします。
- コマンド・ウィンドウで、「SET JAVA_HOME=wct_root¥java」と入力します。注: SSL ソケット・ファクトリーを WebSphere Application Server SSL ソケット・ファクトリーに設定する 2 行をコメント化して、wct_root¥java¥jre¥lib¥security¥java.security を一時的に変更します。この変更については、「トラブルシューティング・ヒント」トピックの 『SSL のトラブルシューティング』セクションに説明があります。
- 同じコマンド・ウィンドウから、jconsole Java ユーティリティーを実行します。例えば、以下のコマンドを実行します。
次のパラメーターも必要な場合があります。"%JAVA_HOME%"¥bin¥jconsole -J-Djava.class.path="%JAVA_HOME%"¥lib¥jconsole.jar;"%JAVA_HOME%"¥lib¥tools.jar; C:¥restClient¥restConnector.jar -J-Djavax.net.ssl.trustStore=C:¥restClient¥key.jks -J-Djavax.net.ssl.trustStorePassword=Liberty -J-Djavax.net.ssl.trustStoreType=jks
-J-Dcom.ibm.ws.jmx.connector.client.disableURLHostnameVerification=true
- サーバーに接続してから、「MBeans」タブをクリックします。
jConsole が開始したら、 「リモート・プロセス (Remote Process)」を選択し、JMX サービス URL の service:jmx:rest://<host>:<port>/IBMJMXConnectorREST を入力します。このポート番号は HTTPS ポートです。ユーザー名とパスワードも指定してください。
- WebSphere ドメインの下に com.ibm.ws.jmx.mbeans.generatePluginConfig MBean を配置します。
- generateDefaultPluginConfig 操作を呼び出して plugin-cfg.xml ファイルを生成するか、 plugin-cfg.xml ファイルを生成する前に、generatePluginConfig 操作を呼び出してインストール・ルート・ディレクトリーとサーバー名をカスタマイズします。
plugin-cfg.xml ファイルが ${server.output.dir} ディレクトリー内に生成されます。<?xml version="1.0" encoding="UTF-8"?> <Config ASDisableNagle="false" AcceptAllContent="false" AppServerPortPreference="HostHeader" ChunkedResponse="false" FIPSEnable="false" IISDisableNagle="false" IISPluginPriority="High" IgnoreDNSFailures="false" RefreshInterval="60" ResponseChunkSize="64" SSLConsolidate="false" SSLPKCSDriver="REPLACE" SSLPKCSPassword="REPLACE" TrustedProxyEnable="false" VHostMatchingCompat="false"> <Log LogLevel="Error" Name=".¥logs¥defaultServer¥http_plugin.log"/> <Property Name="ESIEnable" Value="true"/> <Property Name="ESIMaxCacheSize" Value="1024"/> <Property Name="ESIInvalidationMonitor" Value="false"/> <Property Name="ESIEnableToPassCookies" Value="false"/> <Property Name="PluginInstallRoot" Value="."/> <VirtualHostGroup Name="default_host"> <VirtualHost Name="*:80"/> <VirtualHost Name="*:443"/> <VirtualHost Name="*:9080"/> </VirtualHostGroup> <ServerCluster CloneSeparatorChange="false" GetDWLMTable="false" IgnoreAffinityRequests="true" LoadBalance="Round Robin" Name="defaultServer_default_node_Cluster" PostBufferSize="64" PostSizeLimit="-1" RemoveSpecialHeaders="true" RetryInterval="60"> <Server CloneID="b564bdc7-2c27-4a4b-ad37-9213c66e60d1" ConnectTimeout="0" ExtendedHandshake="false" MaxConnections="-1" Name="default_node_defaultServer0" ServerIOTimeout="900" WaitForContinue="false"> <Transport Hostname="somehost.example.com" Port="9080" Protocol="http"/> </Server> <PrimaryServers> <Server Name="default_node_defaultServer0"/> </PrimaryServers> </ServerCluster> <UriGroup Name="default_host_defaultServer_default_node_Cluster_URIs"> <Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/myapp/*"/> <Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/snoop/*"/> </UriGroup> <Route ServerCluster="defaultServer_default_node_Cluster" UriGroup="default_host_defaultServer_default_node_Cluster_URIs" VirtualHostGroup="default_host"/> </Config>
注:- Liberty プロファイルでは、jConsole ユーティリティーを使用できます。ただし、このユーティリティー自体の問題は、ご使用の Java SDK のプロバイダーに報告してください。
- WebSphere:name=com.ibm.ws.jmx.mbeans.generatePluginConfig MBean の管理インターフェースは、 com.ibm.websphere.webcontainer.GeneratePluginConfigMBean です。 管理インターフェースを使用して、プロキシー・オブジェクトを取得できます。『MBean 属性および操作にアクセスする例』を参照してください。 管理インターフェースについて詳しくは、Liberty プロファイルの Java API 資料を参照してください。各 Liberty プロファイル API の Java API 文書は、インフォメーション・センターの プログラミング・インターフェース (API) のセクションに詳述されていて、${wlp.install.dir}/dev ディレクトリーのいずれかの javadoc サブディレクトリー内の個別 .zip ファイル内にもあります。
- 同じ Java SDK をサーバーとして使用して、コマンド・ウィンドウで jconsole Java ユーティリティーを実行します。
- Web サーバーをホストするマシンに plugin-cfg.xml ファイルをコピーします。
IBM i の場合、以下のステップを実行します。
- manageprofiles Qshell コマンドを実行して、http プロファイルを作成します。例: plugins_root/bin/manageprofiles -create -profileName http -templatePath http
- plugin-cfg.xml ファイルをサブステップ a で作成した http プロファイルの config ディレクトリーにコピーし (例えば、plugin_profile_root/config/plugin-cfg.xml)、ファイル許可を設定します。
- システム・コマンド・ラインから以下のコマンドを実行して、ファイル権限を必要な設定値に変更します。
CHGAUT USER(QEJBSVR QTMHHTTP QNOTES) OBJ('plugin_profile_root/config/plugin-cfg.xml') DTAAUT(*RWX)
plugin-cfg.xml ファイルを使用するように HTTP サーバーを構成します。
HTTP サーバーの構成ファイルの最後にある WebSpherePluginConfig ディレクティブに指定された値を調べ、 現行の plugin-cfg.xml のロケーションを判別します。 例えば、<IHS_ROOT>/conf/httpd.conf などです。
LoadModule 句を使用して、Web サーバーの httpd.conf ファイル内のプラグインを使用可能にし、WebSpherePluginConfig 句を使用して、plugin-cfg.xml ファイルのロケーションを指定します。以下に例を示します。- Windows システムの場合:
LoadModule was_ap22_module "path/to/mod_was_ap22_http.dll" WebSpherePluginConfig "C:¥Program Files¥IBM¥HTTPServer¥conf¥plugin-cfg.xml"
- 他の分散システムの場合:
LoadModule was_ap22_module "path/to/mod_was_ap22_http.so" WebSpherePluginConfig "/opt/IBM/HTTPServer/conf/plugin-cfg.xml"
IBM i の場合、httpd.conf ファイル内のプラグインの使用可能化に関する説明について、IBM HTTP Server (Apache 2.x で稼働) の構成を参照してください。
- Windows システムの場合:
- オプション: Web サーバー・プラグインが HTTP 要求を複数の Liberty プロファイル・サーバーに転送するようにしたい場合は、追加されるサーバーごとに上記のステップを繰り返します。必ず、すべてのプラグイン構成を 1 つの plugin-cfg.xml ファイルにまとめてください。 注:
- アプリケーションが Servlet 3.0 3.0 API を使用してセッション Cookie 構成をプログラマチックに変更する場合は、plugin-cfg.xml ファイルを生成する前にアプリケーションを初期化する必要があります。これを行わないと、そのアプリケーションに定義された AffinityCookie 属性が、間違ったものになる可能性があります。この問題を回避するには、deferServletLoad を false に設定し、サーバーを始動し、プラグインを生成してから、deferServletLoad 属性を削除してください。
- 完全プロファイルで pluginCfgMerge という名前のユーティリティーを使用して、 複数の plugin-cfg.xml ファイルをマージできます。 『複数のアプリケーション・サーバー・プロファイル間での単純なロード・バランシングの構成』を参照してください。
- ジョブ・マネージャーを使用して複数の plugin-cfg.xml ファイルをマージする場合は、 『ジョブ・マネージャーを使用した Liberty プロファイル・サーバー用のマージしたプラグイン構成の生成』を参照してください。

インフォメーション・センターに関するご使用条件 | フィードバック

http://www14.software.ibm.com/webapp/wsbroker/redirect?version=phil&product=was-libcore-mp&topic=twlp_admin_webserver_plugin
ファイル名: twlp_admin_webserver_plugin.html