使用 MBean 來產生 plugin-cfg.xml 檔

您可以呼叫 WebSphere:name=com.ibm.ws.jmx.mbeans.generatePluginConfig MBean,為 Web 伺服器產生 plugin-cfg.xml 檔。

開始之前

[16.0.0.3 以及更新版本]從 16.0.0.3 開始,您不再需要產生 plugin-cfg.xml 檔。 產品會替您產生這個檔案。 請參閱 自動產生 plugin-cfg.xml 檔

如果應用程式利用 Servlet 3.0 API,以程式設計方式來修改階段作業 Cookie 配置,在產生 plugin-cfg.xml 檔之前,必須先將應用程式起始設定。 否則,針對這個應用程式來定義的 AffinityCookie 屬性會發生錯誤。 如果要避免這個問題,您可以deferServletLoad 設為 false、啟動伺服器、產生外掛程式,然後移除 deferServletLoad 屬性。

關於這項作業

Web 伺服器外掛程式用來將 HTTP 要求從支援的 Web 伺服器轉遞給一或多部應用程式伺服器。 外掛程式會取得要求,並對照 plugin-cfg.xml 檔中的配置資料來檢查要求。 配置資料會將 HTTP 要求的 URI 對映至應用程式伺服器的主機名稱。 之後,Web 伺服器外掛程式會利用這個資訊,將要求轉遞給應用程式伺服器。

程序

  1. 啟動代管應用程式的伺服器,確定已將 localConnector-1.0 特性(IBM® i 和 z/OS® 平台)或 restConnector-1.0 特性(如果您是配置 IBM i 或 z/OS 的外掛程式),以及任何其他必要的特性併入伺服器配置中。

    在伺服器配置檔的 pluginConfiguration 元素中,您可以指定 webserverPortwebserverSecurePort 屬性來轉遞 Web 伺服器發出的要求。 依預設,webserverPort 值是 80webserverSecurePort 值是 443。 不過,您可能會想要變更這些設定。 比方說,如果是 Linux 和類似的平台,且您是非 root 使用者,您必須使用大於 1024 的埠號。

    關於 pluginConfiguration 元素的所有可配置的屬性,請參閱 Java Servlet 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,請併入 restConnector-1.0 特性,而不是 localConnector-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>
    註:
    • 如果您配置 Web 伺服器外掛程式來使用 SSL,您必須啟用 Libertyssl-1.0 Liberty 特性。
    • 如果 Web 伺服器使用預設埠,您不需要在 server.xml 檔中併入 pluginConfiguration 元素。
    • Web 伺服器外掛程式所用的金鑰儲存庫必須是可以利用「金鑰管理 (iKeyman)」公用程式來建立的 CMS 金鑰儲存庫。 雖然您必須在 Web 伺服器外掛程式金鑰儲存庫和 Liberty 金鑰儲存庫之間交換簽章者憑證,但您無法將 Liberty 或傳統版所建立的 JKS 金鑰儲存庫用於 Web 伺服器外掛程式。
    • 如果要配置外掛程式日誌檔的位置,請新增下列程式碼 Snippet 到 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
        註: 請確定您暫時修改了 wct_root\java\jre\lib\security\java.security,作法是註銷將 SSL Socket Factory 設為 WebSphere® Application Server SSL Socket Factory 的那兩行。這項修改記載在疑難排解提示主題的 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. 連接到您的伺服器,然後按一下 MBean 標籤。 適用於 IBM i 平台jConsole 啟動之後,請選取遠端程序,然後輸入 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. plugin-cfg.xml 檔複製到管理 Web 伺服器的機器。 適用於 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)

指示主題類型的圖示 作業主題

檔名:twlp_generate_plugin_cfg_xml_mbean.html