MBean を使用した plugin-cfg.xml ファイルの生成

WebSphere:name=com.ibm.ws.jmx.mbeans.generatePluginConfig MBean を呼び出すことにより、Web サーバー用の plugin-cfg.xml ファイルを生成することができます。

始める前に

16.0.0.3 以降、plugin-cfg.xml ファイルを生成する必要はありません。製品がこのファイルを生成します。『plugin-cfg.xml ファイルの自動生成』を参照してください。

アプリケーションが Servlet 3.0 API を使用してセッション Cookie 構成をプログラマチックに変更する場合、plugin-cfg.xml ファイルを生成する前にアプリケーションを初期化する必要があります。これを行わないと、そのアプリケーションに定義された AffinityCookie 属性が、間違ったものになる可能性があります。この問題を回避するには、deferServletLoadfalse に設定し、サーバーを始動し、プラグインを生成してから、deferServletLoad 属性を削除してください。

このタスクについて

Web サーバー・プラグインは、サポートされる Web サーバーから 1 つ以上のアプ リケーション・サーバーに HTTP 要求を転送するために使用されます。プラグインは、要求を受け取り、その要求を plugin-cfg.xml ファイル内の構成データと照合します。構成データは、 HTTP 要求の URI を、アプリケーション・サーバーのホスト名にマップします。その後、Web サーバー・プラグインは、この情報を使用して、アプリケーション・サーバーに要求を転送します。

手順

  1. アプリケーションをホストするサーバーを始動し、IBM®i および z/OS® プラットフォーム用の localConnector-1.0 フィーチャー、または restConnector-1.0 フィーチャー (IBM i または z/OS 用のプラグインを構成している場合)、およびその他の必要なフィーチャーがサーバー構成に含まれていることを確認します。

    サーバー構成ファイルの pluginConfiguration エレメントで、Web サーバーから要求を転送するための webserverPort 属性および webserverSecurePort 属性を指定できます。デフォルトでは、webserverPort の値は 80webserverSecurePort の値は 443 です。ただし、これらの設定を変更することが必要な場合があります。例えば、Linux のようなプラットフォームでは、非 root ユーザーは、1024 より大きいポート番号を使用する必要があります。

    pluginConfiguration エレメントの構成可能なすべての属性については、 『Java Servlets 3.1』を参照してください。

    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 プラットフォームの場合IBM i および z/OS の場合、localConnector-1.0 フィーチャーの代わりに restConnector-1.0 フィーチャーを組み込んでください。詳細については、Liberty へのセキュア JMX 接続の構成を参照してください。

    IBM i プラットフォームの場合IBM i および z/OS 用の 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 または traditional で作成された JKS 鍵ストアを Web サーバー・プラグインに使用することはできません。
    • プラグインのログ・ファイルのロケーションを構成するには、 server.xml ファイルの pluginConfiguration エレメント内に次のコード・スニペットを追加してください。
      logDirLocation="/path/to/log/file/"
  2. WebSphere:name=com.ibm.ws.jmx.mbeans.generatePluginConfig MBean を呼び出して、Liberty サーバーおよびアプリケーションの plugin-cfg.xml ファイルを生成します。
    1. 同じ Java SDK をサーバーとして使用して、コマンド・ウィンドウで jconsole Java ユーティリティーを実行します。
      例えば、以下のコマンドを実行します。
      c:¥java¥bin¥jconsole
      サーバー・プロセスが、接続を待機している選択項目にリストされます。
      IBM i プラットフォームの場合IBM i および z/OS の場合、WCT と一緒にワークステーションにインストールされた Java SDK を使用して、コマンド・ウィンドウから jconsole Java ユーティリティーを実行します。例えば、以下のステップを実行します。
      1. ワークステーション上に C:¥restClient ディレクトリーを作成します。
      2. ${wlp.install.dir}/clients/restConnector.jar をワークステーション上の C:¥restClient ディレクトリーにコピーします。
      3. ${server.output.dir}/resources/security/key.jks をワークステーション上の C:¥restClient ディレクトリーにコピーします。
      4. コマンド・ウィンドウで、「SET JAVA_HOME=wct_root¥java」と入力します。
        注: SSL ソケット・ファクトリーを WebSphere® Application Server SSL ソケット・ファクトリーに設定する 2 行をコメント化して、wct_root¥java¥jre¥lib¥security¥java.security を必ず一時的に変更してください。この変更については、「トラブルシューティング・ヒント」トピックの 『SSL のトラブルシューティング』セクションに説明があります。
      5. 同じコマンド・ウィンドウから、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
    2. サーバーに接続してから、「MBeans」タブをクリックします。 IBM i プラットフォームの場合jConsole が開始したら、 「リモート・プロセス (Remote Process)」を選択し、JMX サービス URL の service:jmx:rest://<host>:<port>/IBMJMXConnectorREST を入力します。 このポート番号は HTTPS ポートです。ユーザー名とパスワードも指定してください。
    3. WebSphere ドメインの下に com.ibm.ws.jmx.mbeans.generatePluginConfig MBean を配置します。
    4. generateDefaultPluginConfig 操作を呼び出して plugin-cfg.xml ファイルを生成するか、 plugin-cfg.xml ファイルを生成する前に、generatePluginConfig 操作を呼び出してインストール・ルート・ディレクトリーとサーバー名をカスタマイズします。
    plugin-cfg.xml ファイルの例を以下に示します。
    <?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>
    plugin-cfg.xml ファイルが ${server.output.dir} ディレクトリー内に生成されます。
    注:
    • Liberty では、jConsole ユーティリティーを使用できます。ただし、このユーティリティー自体の問題は、ご使用の Java SDK のプロバイダーに報告してください。
    • WebSphere:name=com.ibm.ws.jmx.mbeans.generatePluginConfig MBean の管理インターフェースは、 com.ibm.websphere.webcontainer.GeneratePluginConfigMBean です。
  3. Web サーバーをホストするマシンに plugin-cfg.xml ファイルをコピーします。 IBM i プラットフォームの場合IBM i の場合、以下のステップを実行します。
    1. manageprofiles Qshell コマンドを実行して、http プロファイルを作成します。例: plugins_root/bin/manageprofiles -create -profileName http -templatePath http
    2. plugin-cfg.xml ファイルをサブステップ a で作成した http プロファイルの config ディレクトリーにコピーし (例えば、plugin_profile_root/config/plugin-cfg.xml)、ファイル許可を設定します。
    3. システム・コマンド・ラインから以下のコマンドを実行して、ファイル権限を必要な設定値に変更します。
      CHGAUT USER(QEJBSVR QTMHHTTP QNOTES) OBJ('plugin_profile_root/config/plugin-cfg.xml') DTAAUT(*RWX)

トピックのタイプを示すアイコン タスク・トピック



タイム・スタンプ・アイコン 最終更新: Tuesday, 6 December 2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twlp_generate_plugin_cfg_xml_mbean
ファイル名: twlp_generate_plugin_cfg_xml_mbean.html