您可以将动态路由选择功能部件配置为将 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 格式并将个人证书设置为缺省值。WebSphere 插件支持 CMS 格式。例如:
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 伪指令中指定的目录。将生成带有 <IntelligentManagement> 节的 plugin-cfg.xml。如果在集合体中启用了动态路由选择,那么每个集合体控制器有一个 <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 集合体。