阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Apache JK 配置

105次阅读
没有评论

共计 4001 个字符,预计需要花费 11 分钟才能阅读完成。

在介绍 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 要成对出现.

————————————– 分割线 ————————————–

Ubuntu 13.04 安装 LAMP\Vsftpd\Webmin\phpMyAdmin 服务及设置 http://www.linuxidc.com/Linux/2013-06/86250.htm

CentOS 5.9 下编译安装 LAMP(Apache 2.2.44+MySQL 5.6.10+PHP 5.4.12) http://www.linuxidc.com/Linux/2013-03/80333p3.htm

RedHat 5.4 下 Web 服务器架构之源码构建 LAMP 环境及应用 PHPWind http://www.linuxidc.com/Linux/2012-10/72484p2.htm

LAMP 源码环境搭建 WEB 服务器 Linux+Apache+MySQL+PHP http://www.linuxidc.com/Linux/2013-05/84882.htm

LAMP+Xcache 环境搭建 http://www.linuxidc.com/Linux/2014-05/101087.htm

————————————– 分割线 ————————————–

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-20发表,共计4001字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中