linux apache jk,Apache JK 配置

在介绍JK可配属性之前,先了解一下它的几个属性配置的小知识:

JK的属性设置格式如下:

worker..=

a,起始位置永远以worker为开头,

b,directive为指令名称,或称之为属性名称

c,等号后面为所要设置的值

当然,如果你愿意也可以在proerties文件中自定义变量,格式如下:

=

唯一要注意的一点是,变量名不要以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要成对出现.

--------------------------------------分割线 --------------------------------------

--------------------------------------分割线 --------------------------------------

0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值