为 Liberty 概要文件配置 Web 服务器插件
可以配置 Web 服务器插件,以便在 Web 服务器接收到对动态资源的 HTTP 请求时,会将该请求转发到 Liberty 概要文件。
关于此任务
使用 Web 服务器插件将 HTTP 请求从支持的 Web 服务器转发到一个或多个应用程序服务器。插件接受请求并根据 plugin-cfg.xml 文件中的配置数据来检查请求。配置数据将 HTTP 请求的 URI 映射到应用程序服务器的主机名。Web 服务器插件随后使用此信息将请求转发到应用程序服务器。
过程
- 安装受支持 Web 服务器,例如,IBM® WebSphere® Application Server 附带的
IBM HTTP Server。请参阅安装 IBM HTTP Server。
IBM i 附带的 Web 服务器已安装在产品 5761-DG1(对于 IBM i V6R1)或 5770-DG1(对于 IBM i V7R1)下。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 工具。使用 WCT 安装的 Java™ SDK 用于在后续步骤中运行 jconsole Java 实用程序。
- 要安装 Web 服务器插件,请参阅安装并配置 Web 服务器插件。
使用 WCT 为您选择的 Web 服务器配置 Web 服务器插件。
- 在 WCT 中收到提示时,请选择“远程”场景并指定可以存取 Liberty 概要文件的主机名。
- 不要复制或运行生成的 configureWebserver 脚本,因为 Liberty 概要文件不需要此脚本。
- 启动用于主管应用程序的服务器,并确保 localConnector-1.0 功能部件
或 restConnector-1.0 功能部件(如果您要为 IBM i 配置插件)和其他必需功能部件包括在服务器配置中。
在服务器配置文件的 pluginConfiguration 元素中,可以指定 webserverPort 和 webserverSecurePort 属性以转发来自 Web 服务器的请求。缺省情况下,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,请包括 restConnector-1.0 功能部件而不是 localConnector-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>
注:- 如果将 Web 服务器插件配置成使用 SSL,那么必须启用 Liberty 概要文件的 ssl-1.0 Liberty 功能部件。
- 如果 Web 服务器是使用缺省端口,那么不必在 server.xml 文件中包括 pluginConfiguration 元素。
- Web 服务器插件使用的密钥库必须是 CMS 密钥库,该密钥库可以使用密钥管理 (iKeyman) 实用程序来创建。不能对 Web 服务器插件使用 Liberty 概要文件或完整概要文件创建的 JKS 密钥库,尽管您必须在 Web 服务器插件密钥库与 Liberty 概要文件密钥库之间交换签署者证书。
- 要配置插件日志文件的位置,请将下列代码段添加到 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 套接字工厂的两行,临时修改 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 启动后,选择远程进程,然后输入 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 操作以定制安装根目录和服务器名称。
在 ${server.output.dir} 目录中生成 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>
注:- 可将 jConsole 实用程序与 Liberty 概要文件配合使用。但是,与该实用程序本身相关的任何问题必须报告给 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 实用程序。
- 将 plugin-cfg.xml 文件复制到主管 Web 服务器的机器。
对于 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)
配置 HTTP Server 以使用 plugin-cfg.xml 文件。
通过在 HTTP Server 配置文件结尾查找对 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,请参阅配置基于 Apache 2.x 的 IBM HTTP Server,以获取有关在 httpd.conf 文件中启用插件的指示信息。
- 在 Windows 系统上:
- 可选: 如果想要 Web 服务器插件将 HTTP 请求转发到多个 Liberty 概要文件服务器,请对每个附加服务器重复先前步骤。确保将所有插件配置合并到一个 plugin-cfg.xml 文件。 注:
- 如果应用程序使用 Servlet 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