您可以配置「動態遞送」特性,一旦環境變更,就逕行將 HTTP 要求遞送至 Liberty 群體的成員,而不必重新產生 WebSphere 外掛程式配置檔。
關於這項作業
如果要使用「智慧型管理」將 HTTP 要求遞送至 Liberty 群體,您必須在群體中的一或多部群體控制器上啟用 dynamicRouting-1.0 特性。此特性提供「動態遞送」服務,此服務會從群體儲存庫動態擷取遞送資訊,然後將此資訊交付給 WebSphere® 外掛程式。此特性也提供 dynamicRouting 指令。將 setup、genPluginCfg 和 genKeystore 指令動作一起使用,以產生金鑰儲存庫(在外掛程式與「動態遞送」服務進行安全通訊時需要),以及一個外掛程式配置檔(用於在 WebSphere 外掛程式中啟用「智慧型管理」)。
遞送規則功能可以將送入 WebSphere 外掛程式的要求,遞送至一組指定的伺服器。此外,還可選擇拒絕或重新導向要求。經由比對送入要求的屬性,就能選擇是否將規則套用至送入的要求。
程序
- 請將下列程式碼新增至控制器 server.xml 中的 featureManager 標籤,以便在該控制器中啟用「動態遞送」。
<feature>dynamicRouting-1.0</feature>
- 啟動「動態遞送」特性已啟用的所有控制器。
- 在其中一部控制器上執行 dynamicRouting setup 指令,來產生金鑰儲存庫和外掛程式配置檔。例如:
./dynamicRouting setup --port=9444 --host=controller1.acme.com --user=admin --password=passw0rd --keystorePassword=webAS --pluginInstallRoot=/opt/HTTPServer_Plugins/ --webServerNames=webserver1
註: 確保指定的 --user 引數值存在於使用者登錄中,而且已獲指派管理角色。
如需相關資訊,請參閱「動態遞送」指令。
- 將產生的 plugin-key.jks 和 plugin-cfg.xml 檔複製到 Web 伺服器主機上的暫存目錄。
- 在 Web 伺服器主機上執行 gskcmd(包含在 IHS 套件中),以便將金鑰儲存庫轉換成 CMS 格式,以及將個人憑證設為預設值。CMS 格式是 WebSphere 外掛程式支援的格式。例如:
gskcmd -keydb -convert -pw webAS -db /tmp/plugin-key.jks -old_format jks -target /tmp/plugin-key.kdb -new_format cms -stash
gskcmd -cert -setdefault -pw <<password>> -db /tmp/plugin-key.kdb -label default
若為 z/OS,請參閱在 z/OS 上將金鑰儲存庫轉換成 CMS 格式。
- 將 gskcmd 建立的 plugin-key.kdb、plugin-key.rdb 和 plugin-key.sth 檔,從暫存目錄複製到 --pluginInstallRootargument_value/config/web_server_name/ 目錄。
- 將 plugin-cfg.xml 複製到 Web 伺服器 httpd.conf 檔中之 WebSpherePluginConfig 指引所指定的目錄。產生的 plugin-cfg.xml 中含有 <IntelligentManagement> 段落。當群體中啟用「動態遞送」時,每一個群體控制器各有一個 <Connector> 段落。
例如:
<IntelligentManagement>
<Property name="webserverName" value="webServer1"/>
<ConnectorCluster enabled="true" maxRetries="-1" name="default" retryInterval="60">
<Property name="uri" value="/ibm/api/dynamicRouting"/>
<Connector host="controller1.acme.com" port="9444" protocol="https">
<Property name="keyring" value="/opt/HTTPServer_Plugins/config/webserver1/plugin-key.kdb"/>
</Connector>
</ConnectorCluster>
</IntelligentManagement>
- 啟動 Web 伺服器,並開始遞送至安裝在群體中的應用程式。
- 選擇性的: 將 <dynamicRouting> 元素新增至控制器 server.xml,以指定動態遞送的內容。
connectorClusterName 內容指定的名稱可讓動態遞送與群體產生關聯。如果未指定 connectorClusterName 內容,則會使用群體的名稱。retryInterval 內容指定當連接控制器失敗時,重新連線之前的等待時間。
maxRetries 內容指定嘗試重新連接失敗群體控制器的次數。
例如:
<dynamicRouting maxRetries="4" retryInterval="20" connectorClusterName="collective1"/>
<TraceSpecification name="default" specification=":DEBUG"/>
</dynamicRouting>
產生的
plugin-cfg.xml 中有
<ConnectorCluster> 內容:
<IntelligentManagement>
<TraceSpecification name="default" specification=":DEBUG"/>
<Property name="webserverName" value="webServer1"/>
<ConnectorCluster enabled="true" maxRetries="4" name="collective1" retryInterval="20">
<Property name="uri" value="/ibm/api/dynamicRouting"/>
<Connector host="controller1.acme.com" port="9444" protocol="https">
<Property name="keyring" value="/opt/HTTPServer_Plugins/config/webServer1/plugin-key.kdb"/>
</Connector>
</ConnectorCluster>
</IntelligentManagement>
選用:建立遞送規則,指定如何處理特定的要求。 遞送規則可以指定:
- 拒絕特定的要求。
- 重新導向特定的要求。
- 容許特定的要求遞送至一部分可用的伺服器。
- 由一組伺服器失效接手另一組伺服器的特定要求。
請參閱Liberty 動態遞送的遞送規則和配置 Liberty 動態遞送的遞送規則。
結果
由於啟用 dynamicRouting-1.0 特性,「智慧型管理」現在可以動態地將 HTTP 要求遞送至 Liberty 群體。