在介绍JK可配属性之前,先了解一下它的几个属性配置的小知识:
JK的属性设置格式如下:
worker.<worker name>.<directive>=<value>
a,起始位置永远以worker为开头,
b,directive为指令名称,或称之为属性名称
c,等号后面为所要设置的值
当然,如果你愿意也可以在proerties文件中自定义变量,格式如下:
<variable_name>=<value>
唯一要注意的一点是,变量名不要以worker开头
worker属性的继承(属性模版):
在实际的配置过程中,可以预先定义worker的一套属性做为集群中其它worker的模版。
“reference”属性就是被用来做这件事情的,使woker之间的属性复制变的相当的容易,如:
worker.worker1.reference=worker.worker2
接下来,将介绍几个比较重要的JK属性:
全局属性仅有两个:
#应用服务器的逗号分隔的名称列表,上面的例子已经用到
worker.list
#JK的全局池的维护时间间隔,秒为单位
worker.maintain
worker的私有属性:
type:可以选值为, ajp13, ajp14, jni, lb or status。
AJP(Apache JServ Protocol version 1.3 ),用来在Tomcat与Apache之间通迅的协议,最大的优点就是速度很快。Tomcat社区推建用AJP113协议做为worker的通迅协议,因此用它的worker被称之为AJP13 worker。
jni,这种类型的woker已经不被推荐使用
lb,为负载器的worker。
stauts, jkstatus,进入页面察看负载均衡信息
host: 默认值为localhost
设置worker主机的ip
prot:默认值为8009
设置worker主机的连接端口号(本例用的AJP协议,此端口号在server.xml中的Connector标签中定义)
socket_timeout:默认为0
设置JK与远程服务器的Socket连接超时秒数,如果超出此秒数则产生一个错误,并再次重试。如果为0,JK会一直等下去。
socket_connect_timeout:默认为socket_timeout*1000
以毫秒数为单位的socket_timeout
socket_keepalive:默认为False
防止防火墙切断不在使用的连接,通过设置为True,通知操作系统向不在使用的连接发送KEEP_ALIVE消信。
ping_mode:
此属性判断以什么方式判断Tomcat是否可用,目前实现是向服务器发送AJP13的空包(CPing)并且在指定时间内收到适当的响应(CPong),超时首先参考connect_timeout,如果没有则参考ping_timeout。一共提供四种判断心跳的方法:
C(connect):在一个连接(连接是被复用的)生成前仅检验一次。
P(prepost):每次请求前都会判断服务是否可用
I(interval):在时间间隔周期性的判断服务是否可用
A:以上所有的组合
ping_timeout:默认为10000
毫秒单位,用来做CPong的超时
connection_ping_interval:默认为0 / (ping_timeout/1000)*10
ping_mode中所使用的时间间隔
connection_pool_size:
为了提高与Tomcat通迅的性能,JK会维护多个长连接做为一个池。它被用来设置每个WebServer(Apache)子进程的最大连接数。注意,Apache2.x 在prefork模式下 或 Apache1.3.x 环境下不要此属性的值超过1。目前最新的2.2版apache Linux编译后,FC测试默认是prefork模式。
connection_pool_minsize:默认值(connection_pool_size+1)/2
连接池中维护最小的连接数。注意,Apache2.x 在prefork模式下 或 Apache1.3.x 环境下不要此属性的值超过1。目前最新的2.2版apache Linux编译后,FC测试默认是prefork模式。
connection_pool_timeout:默认值0
在连连池中维护的非活动连接连续多少秒后被释放。如果为0,则不释放。
connection_acquire_timeout:默认值retries*retry_interval
获取接连的超时
lbfactor:
负载权重,值越高被分发请求的概率越大。
负载器属性:
balance_workers:
逗号分隔的worker列表
sticky_session:默认值True
负载喷发采用Session粘贴机制,按SessionID喷发请求。为了保障同一SessionID的请求被分发到同一台服务器上。
sticky_session_force: 默认值为Flase
如果为True, SessionID并不合法时则返回500错误,否则,丢掉Session并转发到另外的机器上
good:默认值 a.o,a.n,a.b,a.r
负载器管理的worker有三个状态:“good”,“bad”和“degraded”,这些状态被时时临控。
你可以自定义good的属性值列表,每个值都是单字母或两个字母中间加点“.”的格式。
以下单词的首字母做为值列表的值:“active”,“disabled”,“stopped”,“ok”,“na”,“busy”,“recovering”,“error”。如果仅用单字母组合的话,其中一个worker状态在此列表中出现,则负载器认为所有的成员都是健康的。如果用"a."组合的话,则负载器仅认为该成员是健康的。
实际上,负载器会首先查看bad属性,如果不匹配的话,才会查看good属性。
bad:默认值 s,e
参考good,默认是“stopped”,“error”才会匹配。
prefix: 默认值为 worker
所有状态的起始前缀
retries:默认值为 2
通迅失败的的重式次数
retry_interval: 默认值为100
每次重式的时间间隔,毫秒单位
session_cookie: 默认值为JSESSIONID
SessioinID的Cookie值
下面介绍一下 JkMount 的配置
第一种情形:部分静态页面需要apache处理,不转发给后端的tomcat
JkMount /* router ###默认将所有请求转发给tomcat处理
JKUnmount /*.php router ###php请求不交给tomcat处理
JKUnmount /*.htm router ###htm请求不交给tomcat处理
JKUnmount /*.html router ###html请求不交给tomcat处理
JKUnmount /css/* router ###css请求不交给tomcat处理
JKUnmount /js/* router ###js请求不交给tomcat处理
JKUnmount /image/* router ###image请求不交给tomcat处理
第二种情形:将所有请求转发到后端tomcat之后,将不同路径定位给不同的tomcat
JkMount /* router
JkMount /login/* tomcat1
JkMount /shop/* tomcat2
JkMount /buy/* tomcat3
注意,这种情形下,必须要有这样的处理:
worker.list=router,jkstatus,tomcat1,tomcat2,tomcat3
如果是第一种情形,tomcat1,tomcat2,tomcat3是不需要写在上面这个地方的
而是写在下面:
worker.router.balance_workers=tomcat1,tomcat2,tomcat3
实际使用中,应该是上述两种情形相结合使用的较多,将静态内容交给apache处理,然后将动态内容分布到不同的服务器上。
JkMount把匹配的转发到指定服务器.
JkUnMount把匹配的不转发到指定服务器.
JkUnMount选项的级别高于JkMount.
单独有JkMount规则有效,但单独有JkUnMount无效,JkUnMount与JkMount要成对出现.
相关推荐
"Apache+Tomcat配置信息 JK比较实用"这个标题表明我们将讨论如何结合两者使用,并特别关注JK模块的配置,它用于Apache和Tomcat之间的负载均衡和通信。 Apache的JK模块(mod_jk)是Apache HTTP Server与Tomcat之间的...
Apache2.4、Tomcat8.0以及JK模块的结合使用是实现Web服务器...在实际操作中,需对Apache和Tomcat的配置有深入理解,并掌握JK模块的安装和配置方法。通过这种方式,你可以轻松地扩展服务集群,以应对高并发访问的挑战。
本文将详细介绍如何配置 Apache + Tomcat 集群,包括安装 Apache 和 Tomcat 服务器、配置 mod_jk 模块、配置 Apache 和 Tomcat 服务器、配置负载均衡控制器等。 一、安装 Apache 服务器 首先,需要安装 Apache ...
【描述】中的"apache的安装包和链接tomcat的插件,以及tomcat和apache的配置文件"表明,你需要配置Apache服务器(版本2.2.4)和mod_jk模块来与多个Tomcat实例(如tomcat3、tomcat2、tomcat1)进行通信。此外,还需要...
Apache+Tomcat+JK配置负载均衡是Web服务器与应用服务器集群的一种常见组合,用于实现高可用性和高并发处理能力。Apache作为前端服务器,通过JK模块(mod_jk)与后端的Tomcat应用服务器进行通信,将HTTP请求分发到多...
这个配置中,Apache作为前端反向代理服务器,Tomcat作为后端的应用服务器,而JK模块是Apache与Tomcat之间的连接器,负责通信和请求分发。以下是关于这个主题的详细知识点: 1. **Apache HTTP Server**:Apache是最...
#### Apache的JK配置 - 在Apache的httpd.conf文件中,使用LoadModule指令加载JK模块。 - 使用JkMount指令定义哪些URL路径应该被转发给Tomcat处理。 - 设置JkShmFile和JkLogFile等参数,确保JK模块的正常运行和日志...
Apache 2.4 和 Tomcat 7 的整合配置主要依赖于 mod_jk 模块,这是一个 Apache HTTP 服务器的模块,用于与 Tomcat 进行负载均衡和通信。`mod_jk.so` 是该模块的动态链接库文件,用于在 Apache 和 Tomcat 之间建立连接...
3. 配置Tomcat的server.xml文件,添加JK监听器(mod_jk_AJP13),使Tomcat能接受来自mod_jk的AJP协议连接。 4. 在Apache的虚拟主机配置中,使用mod_jk的`JkMount`指令将特定的URL或目录映射到对应的worker,从而实现...
在实际环境中,正确配置Apache Tomcat和mod_jk对于优化性能、提高可扩展性和保证服务稳定性至关重要。如果你对这些概念不熟悉,建议参考官方文档或在线教程进行学习。 总之,Apache Tomcat的配置是一个涉及多个层次...
本压缩包提供了实现Tomcat集群配置所需的Apache服务器和mod_jk模块,具体版本为Apache 2.0.55和mod_jk-apache-2.0.55.so。 Apache HTTP Server是一个开源的Web服务器,它能够处理静态HTML文件和动态内容,如PHP、...
在高流量或需要高可用性的环境中,通常会将Apache和Tomcat进行集成,形成一种称为“JK集群”的配置,以实现负载均衡和故障转移。 Apache的mod_jk模块是Apache与Tomcat集成的关键,它负责在Apache和Tomcat之间转发...
本篇文章将详细介绍如何在Ubuntu 10.04系统环境下,配置Apache2通过mod_jk连接到Tomcat 6.0.24。 首先,确保你已经安装了Apache2和Tomcat。在Ubuntu上,可以通过以下命令安装: ```bash sudo apt-get update sudo ...
### mod_jk 各个版本及 Apache 与 Tomcat 的整合方法 在 IT 行业中,Apache 和 Tomcat 的整合是非常常见的需求之一。通过使用 mod_jk 这一模块,我们可以实现 Apache 和 Tomcat 之间的高效通信。mod_jk 是一个负载...
在本教程中,我们将深入探讨如何使用JK插件配置Tomcat 5.5.26与Apache 2.2.9进行集成。JK插件,全称“mod_jk”,是Apache HTTP服务器的一个模块,用于将HTTP请求转发到Tomcat应用服务器,实现两者之间的负载均衡和高...
JK模块包含两个部分:mod_jk.so(Apache加载的动态链接库)和worker.properties(配置文件,定义了Apache与Tomcat实例间的映射关系)。 **配置步骤:** 1. **安装Apache和Tomcat:** 首先确保安装了Apache ...
4. **配置mod_jk模块**:Apache HTTP Server与Tomcat之间的连接器,通常通过Apache的mod_jk模块实现。mod_jk负责将HTTP请求转发到合适的Tomcat实例。 5. **配置workers.properties**:在Apache服务器中创建`workers...
需要将mod_jk的.so文件(例如mod_jk-1.2.31-httpd-2.2.3.so)拷贝到Apache的modules目录下,并在Apache的配置文件httpd.conf中添加包含mod_jk配置文件的指令。 3. **修改mod_jk.conf文件**:此文件主要用于配置mod_...