22.7. Apache mod_jk HTTP Connector
Apache mod_jk 是一个 HTTP 连接器,为需要它来满足兼容性的用户提供。
JBoss EAP 可以接受 Apache HTTP 代理服务器的工作负载。代理服务器接受来自 Web 前端的客户端请求,并传递工作以参与 JBoss EAP 服务器。如果启用了粘性会话,则相同的客户端请求始终发送到相同的 JBoss EAP 服务器,除非服务器不可用。
mod_jk 通过 AJP 1.3 协议进行通信。其他协议可与 mod_cluster 或 mod_proxy 一起使用。如需更多信息,请参阅 HTTP Connectors 概述。
mod_cluster 是比 mod_jk 更高级的负载均衡器,是推荐的 HTTP 连接器。mod_cluster 提供 mod_jk 的所有功能,以及其他功能。与 JBoss EAP mod_cluster HTTP 连接器不同,Apache mod_jk HTTP 连接器不知道服务器或服务器组上部署的状态,也无法适应它相应地发送工作的位置。
如需更多信息,请参阅 Apache mod_jk 文档。
22.7.1. 在 Apache HTTP 服务器中配置 mod_jk
安装 JBoss Core Services Apache HTTP 服务器或使用 JBoss Web 服务器时,mod_jk 模块(mod_jk.so
)已包含在内,但默认情况下不加载它。
自版本 3.1.0 起,Apache HTTP 服务器不再与 JBoss Web Server 一起分发。
使用以下步骤在 Apache HTTP 服务器中加载和配置 mod_jk。请注意,这些步骤假定您已导航到 Apache HTTP 服务器的 httpd/
目录,这会根据您的平台而有所不同。如需更多信息,请参阅 JBoss Core Services Apache HTTP Server 安装指南中的 为您的平台安装说明。
红帽客户还可以使用红帽客户门户上的 Load Balancer 配置工具,快速为 mod_jk 和其他连接器生成最佳配置模板。请注意,您必须登录才能访问此工具。
配置 mod_jk 模块。
注意示例 mod_jk 配置文件在
conf.d/mod_jk.conf.sample
提供。您可以通过删除.sample
扩展并根据需要修改其内容,来使用此示例而不是创建自己的文件。创建名为
conf.d/mod_jk.conf
的新文件。将以下配置添加到 文件中,确保修改内容以满足您的需要。# Load mod_jk module # Specify the filename of the mod_jk lib LoadModule jk_module modules/mod_jk.so # Where to find workers.properties JkWorkersFile conf.d/workers.properties # Where to put jk logs JkLogFile logs/mod_jk.log # Set the jk log level [debug/error/info] JkLogLevel info # Select the log format JkLogStampFormat "[%a %b %d %H:%M:%S %Y]" # JkOptions indicates to send SSK KEY SIZE JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories # JkRequestLogFormat JkRequestLogFormat "%w %V %T" # Mount your applications JkMount /application/* loadbalancer # Add shared memory. # This directive is present with 1.2.10 and # later versions of mod_jk, and is needed for # for load balancing to work properly JkShmFile logs/jk.shm # Add jkstatus for managing runtime data <Location /jkstatus/> JkMount status Require ip 127.0.0.1 </Location>
注意JkMount 指令指定 Apache HTTP 服务器必须转发到 mod_jk 模块的 URL。根据指令的配置,mod_jk 将接收的 URL 发送到正确的 worker。要直接提供静态内容,且仅对 Java 应用程序使用负载均衡器,URL 路径必须是
/application understanding
。要将 mod_jk 用作负载均衡器,请使用值 required,将所有 URL 转发到 mod_jk。除了常规 mod_jk 配置外,此文件指定加载
mod_jk.so
模块,并定义在哪里查找worker.properties
文件。配置 mod_jk worker 节点。
注意一个 worker 配置文件示例位于
conf.d/workers.properties.sample
。您可以通过删除.sample
扩展并根据需要修改其内容,来使用此示例而不是创建自己的文件。创建名为
conf.d/workers.properties
的新文件。将以下配置添加到 文件中,确保修改内容以满足您的需要。# Define list of workers that will be used # for mapping requests worker.list=loadbalancer,status # Define Node1 # modify the host as your host IP or DNS name. worker.node1.port=8009 worker.node1.host=node1.mydomain.com worker.node1.type=ajp13 worker.node1.ping_mode=A worker.node1.lbfactor=1 # Define Node2 # modify the host as your host IP or DNS name. worker.node2.port=8009 worker.node2.host=node2.mydomain.com worker.node2.type=ajp13 worker.node2.ping_mode=A worker.node2.lbfactor=1 # Load-balancing behavior worker.loadbalancer.type=lb worker.loadbalancer.balance_workers=node1,node2 worker.loadbalancer.sticky_session=1 # Status worker for managing load balancer worker.status.type=status
有关 mod_jk
worker.properties
文件的语法和其他高级配置选项的详情,请参阅 mod_jk Worker Properties。(可选)指定 JKMountFile 指令。
除了
mod-jk.conf
中的 JKMount 指令外,您还可以指定一个文件,其中包含要转发到 mod_jk 的多个 URL 模式。创建一个
uriworkermap.properties
文件。注意URI worker 映射配置文件示例位于
conf.d/uriworkermap.properties.sample
。您可以通过删除.sample
扩展并根据需要修改其内容,来使用此示例而不是创建自己的文件。创建名为
conf.d/uriworkermap.properties
的新文件。为要匹配的每个 URL 模式添加一行,例如:# Simple worker configuration file /*=loadbalancer
更新配置以指向
uriworkermap.properties
文件。将以下内容附加到
conf.d/mod_jk.conf
。# Use external file for mount points. # It will be checked for updates each 60 seconds. # The format of the file is: /url=worker # /examples/*=loadbalancer JkMountFile conf.d/uriworkermap.properties
有关配置 mod_jk 的详情,请参阅 JBoss Web Server HTTP Connectors 和 Load Balancing Guide 中的 Configuring Apache HTTP Server to Load mod_jk 部分。
22.7.2. 使用 mod_jk 将 JBoss EAP 配置为 Communicate
JBoss EAP undertow
子系统需要指定一个侦听器来接受来自的请求,并将回复发回到外部 Web 服务器。由于 mod_jk 使用 AJP 协议,因此必须配置 AJP 侦听器。
如果您使用默认高可用性配置之一(ha 或 full-ha),则已配置了 AJP 侦听器。
具体步骤请参阅 接受来自外部 Web 服务器的请求。