《tomcat APACHE参数解释.pdf》由会员分享,可在线阅读,更多相关《tomcat APACHE参数解释.pdf(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 没有 百度文库财富值 请到文库帮手网 w w w.365x u e y u a n.c o m 免费帮下载 百度文库积分 资料 本文由y y m 1202000贡献 网上关于Ap a c h e +JK+To m c a t 的集群配置例子很多,按着例子配置下来,基本都能运行,不过,在一些重要的地方却没有进一步的说明。这次公司一个产品就是采用Ap a c h e+JK+To m c a t 集群,在整个配置、测试过程中,遇到了许多的问题,经过不断测试、摸索,最后总算是搞定了,性能也达到了预期的目标。针对网上的例子,感觉有必要再详细的介绍一下我的配置过程,对一些要特别注意的地方进行补充。集群有
2、别于分布式的解决方案,它采用的是每台服务器运行相同应用的策略,由负责平衡的服务器进行分流,这对提高整个系统的并发量及吞吐量是更有效的办法。而集群对请求的处理又有两种不同的方式:负载平衡、状态复制(即集群),状态复制需要在各服务器间复制应用状态,而负载平衡则不用,每台服务器都是独立的。实践证明,在各应用服务器之间不需要状态复制的情况下,负载平衡可以达到性能的线性增长及更高的并发需求。对于集群的其它基础知识,在此就不再做累赘。以下就这次Ap a c h e +JK+To mc a t 的负载平衡配置进行总结,重点关注整个配置及注意事项。准备软件 1、To m c a t 或JBo s s(本文档中
3、采用的是JBo s s 4.0.2);2、a p a c h e 2.0.54是开源的We b 服务器,下载地址为:h t t p:/w w w.a p a c h e.o r g/d i s t/h t t p d/b i n a r i e s/;3、m o d _j k-1.2.14-a p a c h e-2.0.54.s o 模块,j k 是m o d _j s e r v 的替代者,它是To mc a t-Ap a c h e 插件,为Ap a c h e 和To m c a t 的连接器,处理To m c a t 和Ap a c h e 之间的通信,在集群配置中充当负载均衡器的作
4、用,当前的最新版本为1.2.15,不过不同JK版本与不同的Ap a c h e 版本之间的搭配有一些差异,有的甚至配不起来。JK2是符合a p a c h e 2.x 系列的新品,但由于其配置太过麻烦,使用的人很少,所以目前已停止开发,所以我们采用了j k 连接器,下载地址:h t t p:/w w w.a p a c h e.o r g/d i s t/t o m c a t/t o m c a t-c o n n e c t o r s/j k/b i n a r i e s/。集群与负载平衡 使用m o d _j k 默认的以轮循方式进行平衡负载,假设有四个服务器节点,有10个请求,则四
5、个节点分别接受请求编号如下:节点1 节点2 节点3 节点4 1 2 3 4 5 6 7 8 9 10 而集群方式也是使用这种方法进行平衡。To m c a t 中的集群原理是通过组播的方式进行节点的查找并使用TCP连接进行会话的复制。p a g e 1 集群不同于负载平衡的是,由于集群服务需要在处理请求之间不断地进行会话复制,复制后的会话将会慢慢变得庞大,因此它的资源占用率是非常高的,如果在并发量大的应用中,复制的会话大小会变得相当大,而使用的总内存更是会迅速升高。但集群的会话复制,增加了系统的高可用性。由于在每台服务器都保存有用户的Se s s i o n 信息,如果服务器群中某台当机,应用
6、可以自动切换到其它服务器上继续运行,而用户的信息不会丢失,这提高了应用的冗错性。具体采用负载平衡还是集群,这要看应用的需求了。安装配置Ap a c h e 1、下载Ap a c h e 的安装程序a p a c h e _2.0.54-w i n 32-x 86-n o _s s l.e x e 后,安装很简单,一路回车,就此略过。2、安装完毕后,将下载的m o d _j k-1.2.14-a p a c h e-2.0.54.s o 复制到Ap a c h e 安装目录下的m o d u l e s 子目录中。3、然后进入Ap a c h e 安装目录下的c o n f 子目录中,打开h t
7、 t p d.c o n f 配置文件,在最后插入以下一行:In c l u d e c o n f/m o d _j k.c o n f 4、在c o n f 子目录下,建立一个新的配置文件:m o d _j k.c o n f,此文件为Ap a c h e加载连接器的配置文件,文件名可修改,但要与h t t p d.c o n f 中In c l u d e 的文件名一致,内容如下:#Lo a d m o d _j k m o d u l e.Sp e c i f y t h e f i l e n a m e#o f t h e m o d _j k l i b y o u v e d
8、o w n l o a d e d a n d#i n s t a l l e d i n t h e p r e v i o u s s e c t i o n#加载m o d _j k 模块 Lo a d Mo d u l e j k _m o d u l e m o d u l e s/m o d _j k-1.2.14-a p a c h e-2.0.54.s o#Wh e r e t o f i n d w o r k e r s.p r o p e r t i e s Jk Wo r k e r s Fi l e c o n f/w o r k e r s 2.p r o p e
9、r t i e s#Wh e r e t o p u t j k l o g s Jk Lo g Fi l e l o g s/m o d _j k.l o g#Se t t h e j k l o g l e v e l d e b u g/e r r o r/i n f o Jk Lo g Le v e l i n f o#Se l e c t t h e l o g f o r m a t Jk Lo g St a m p Fo r m a t%a%b%d%H:%M:%S%Y#Jk Op t i o n s i n d i c a t e t o s e n d SSL KEY SIZE
10、,Jk Op t i o n s +Fo r w a r d Ke y Si z e +Fo r w a r d URICo m p a t -Fo r w a r d Di r e c t o r i e s#Jk Re q u e s t Lo g Fo r m a t s e t t h e r e q u e s t f o r m a t Jk Re q u e s t Lo g Fo r m a t%w%V%T#请求分发配置,可以配置多项 Jk Mo u n t /*l o a d b a l a n c e r#关掉主机Lo o k u p,如果为o n,很影响性能,可以有10多
11、秒钟的延迟。Ho s t n a m e Lo o k u p s Of f 注:蓝色加粗的两行是重点,第一句是Ap a c h e 加载JK模块用的;第二句为配置哪些URL请求将由负载平衡器来处理。5、在c o n f 子目录下,建立一个新的配置文件:w o r k e r s 2.p r o p e r t i e s,此文件为负载平衡的配置文件,文件名不能修改,这是JK默认的名字,内容如下:w o r k e r.l i s t=l o a d b a l a n c e r#De f i n e t h e f i r s t n o d e w o r k e r.s e r v e
12、 r 99.p o r t=8009 w o r k e r.s e r v e r 99.h o s t=192.168.11.99 w o r k e r.s e r v e r 99.t y p e=a j p 13 w o r k e r.s e r v e r 99.l b f a c t o r=1 w o r k e r.s e r v e r 99.l o c a l _w o r k e r=1 w o r k e r.s e r v e r 99.c a c h e s i z e=1000 w o r k e r.s e r v e r 99.c a c h e _t i
13、 m e o u t=600p a g e 2 w o r k e r.s e r v e r 99.s o c k e t _k e e p a l i v e=1 w o r k e r.s e r v e r 99.s o c k e t _t i m e o u t=0 w o r k e r.s e r v e r 99.r e c l y c l e _t i m e o u t=300 w o r k e r.s e r v e r 99.r e t r i e s=3#De f i n e t h e s e c o n d n o d e w o r k e r.s e r
14、v e r 202.p o r t=8009 w o r k e r.s e r v e r 202.h o s t=192.168.11.202 w o r k e r.s e r v e r 202.t y p e=a j p 13 w o r k e r.s e r v e r 202.l b f a c t o r=1 w o r k e r.s e r v e r 202.l o c a l _w o r k e r=1 w o r k e r.s e r v e r 202.c a c h e s i z e=1000 w o r k e r.s e r v e r 202.c a
15、 c h e _t i m e o u t=600 w o r k e r.s e r v e r 202.s o c k e t _k e e p a l i v e=1 w o r k e r.s e r v e r 202.s o c k e t _t i m e o u t=0 w o r k e r.s e r v e r 202.r e c l y c l e _t i m e o u t=300 w o r k e r.s e r v e r 202.r e t r i e s=3#No w w e d e f i n e t h e l o a d-b a l a n c i
16、n g b e h a v i o u r w o r k e r.l o a d b a l a n c e r.t y p e=l b w o r k e r.r e t r i e s=3 w o r k e r.l o a d b a l a n c e r.b a l a n c e _w o r k e r s=s e r v e r 99,s e r v e r 202 w o r k e r.l o a d b a l a n c e r.s t i c k y _s e s s i o n=t r u e w o r k e r.l o a d b a l a n c e r
17、.s t i c k y _s e s s i o n _f o r c e=t r u e 注:以上定义了两个w o r k e r,一个为s e r v e r 99,另一个为s e r v e r 202,定义了一个负载平衡服务器l o a d b a l a n c e r,其中标蓝色的为重点配置项,相关的详细说明可以看官方的网站文档:h t t p:/t o m c a t.a p a c h e.o r g/c o n n e c t o r s-d o c/,其它节点的定义可以直接Co p y,修改一下节点名及IP就好了。A、w o r k e r.l i s t=l o a d
18、 b a l a n c e r 设定工作的负载平衡器,各To m c a t 节点不能加入此列表。B、w o r k e r.s e r v e r 99.l b f a c t o r 负载平衡的权重比,如果此权重比越大,则分配到此节点的请求越多,如以上两个节点的权重比为1:1,则为平均分配。C、w o r k e r.l o a d b a l a n c e r.b a l a n c e _w o r k e r s=s e r v e r 99,s e r v e r 202 指定此负载平衡器负责的To m c a t 应用节点。D、w o r k e r.l o a d b a
19、l a n c e r.s t i c k y _s e s s i o n=t r u e 此处指定集群是否需要会话复制,如果设为t r u e,则表明为会话粘性,不进行会话复制,当某用户的请求第一次分发到哪台To m c a t 后,后继的请求会一直分发到此Tom c a t 服务器上处理;如果设为f a l s e,则表明需求会话复制。E、w o r k e r.l o a d b a l a n c e r.s t i c k y _s e s s i o n _f o r c e=t r u e 如果上面的s t i c k y _s e s s i o n 设为t r u e 时,
20、建议此处也设为t r u e,此参数表明如果集群中某台To m c a t 服务器在多次请求没有响应后,是否将当前的请求,转发到其它Tom c a t 服务器上处理;此参数在s t i c k y _s e s s i o n=t r u e 时,影响比较大,会导致转发到其它To m c a t 服务器上的请求,找不到原来的s e s s i o n,所以如果此时请求中有读取s e s s io n 中某些信息的话,就会导致应用的n u l l 异常。6、Ap a c h e 服务器的配置文件h t t p d.c o n f 中,默认有三个参数对性能的影响比较大,但根据不同的性能要求,参数的
21、表现又不一样,太小并发提不上去,太大性能反而不好,建议根据项目的需要,实际做个测试,如并发要求800的话,可以设定为:#一个连接的最大请求数量 Ma x Ke e p Al i v e Re q u e s t s 1000(值为0,则不限制数量)#每个进程的线程数,最大1920。NT只启动父子两个进程,不能设置启动多个进程 Th r e a d s Pe r Ch i l d 1000(最大为1920)p a g e 3#每个子进程能够处理的最大请求数 Ma x Re q u e s t s Pe r Ch i l d 1000(值为0,则不限制数量)这三个参数要根据不同的需求,不同的服务器
22、进行调整。安装配置To m c a t 或JBo s s 1、对于To m c a t 或JBo s s 的安装,这里不做说明,目前我们是采用Ap a c h e+JBo s s,不过,JBo s s 也是用的To m c a t,所以这里的配置也是适合To m c a t 的;2、对于JBo s s 的配置,很简单,只需要改两个地方就可以了:第一个地方:进入j b o s s-4.0.2s e r v e r d e f a u l t d e p l o y j b o s s w e b-t o m c a t 55.sa r,打开s e r v e r.x m l,大约在第32行左右,
23、有,在其中加入一个参数,变为:第二个地方:进入j b o s s-4.0.2s e r v e r d e f a u l t d e p l o y j b o s s w e b-t o m c a t 55.sa r META-INF目录,打开j b o s s-s e r v i c e.x m l,大约在110行,有f a l s e,将其改为:t r u e 这里有一个需要特别注意的地方,JBo s s 的To m c a t 中,关于AJP连接协议的默认配置,对于大并发量是不够用的,要做一些修改,进入j b o s s-4.0.2s e r v e r d e f a u l t
24、 de p l o y j b o s s w e b-t o m c a t 55.s a r,打开s e r v e r.x m l,找到的地方,这里是定义AJP连接器的地方,它的配置中没有m a x Th r e a d s 项,默认为200,我们可以做修改:e m p t y Se s s i o n Pa t h=t r u e e n a b l e Lo o k u p s=f a l s e r e d i r e c t Po r t=8443 p r o t o c o l=AJP/1.3 m a x Th r e a d s=3000/m a x Th r e a d s
25、 的值要看你的并发量多大,设置太大也不好。运行 至此,整个配置全部完成,注意一点是,在各JBo s s 节点,重启或新增加一个JBo s s 节点时,需要重新启动Ap a c h e,而对于服务器群中某个JBo s s 节点s h u t d o w n,Ap a ch e 会自动侦测,不用重新启动。如果在运行过程中,群中的某个JBo s s 节点s h u t d o w n,则已登录到此服务器上的用户的请求将出错,此服务器负责的s e s s i o n 将丢失,但Ap a c h e 会自动侦测到此服务器已s h u t d o w n,后继的新请求将不会再引导到此节点。对于负责请求分发
26、的Ap a c h e 服务器,需要消耗大量的CPU资源,因此如果在测试过程中出现一些Se r v i c e Te m p o r a r i l y Un a v a i l a b l e 或Se r v e r h a s s h u t d o w n t h e c on n e c t i o n p r e m a t u r e l y 这样的错误,这一般都是服务器配置不够好引起的,或者是Apa c h e、To m c a t、及应用中的某些配置不够使用,这时候就要考虑换更好的机器或优化应用中的配置。常见问题 一、c a n n o t c o n n e c t t o
27、s e r v e r:无法连接到服务器。这种情况是服务器的配置有问题,服务器无法承受过多的并发连接了,需要优化服务器的配置:如操作系统采用更高版本,如w i n d o w s 2003 s e r v e r,优化t o m c a t 配置:m a x Th r e a d s=500 m i n Sp a r e Th r e a d s=400 m a x Sp a r e Th r e a ds=450 但是t o m c a t 最多支持500个并发访问 优化a p a c h e 配置:Th r e a d s Pe r Ch i l d 1900 Ma x Re q u e
28、s t s Pe r Ch i l d 10000 二、Ac t i o n.c(10):Er r o r -27791:Se r v e r h a s s h u t d o w n t h e c o n n e c t i o n p r e m a t u r e l y HTTP St a t u s-Co d e=503(Se r v i c e Te m p o r a r i l y Un a v a i l a b l e)一般都是由于服务器配置不够好引起的,需要优化硬件和调整程序了。三、无法处理请求:当我们输入*.d o 命令后,a p a c h e 却返回错误信息,而连接t o m c a t 却没有问题。原因是没有把.d o 命令转发给t o m c a t 处理。解决方法如下:在a p a c h e 配置文件中配置如下内容:Jk Mo u n t /*.j s p l o a d b a l a n c e r Jk Mo u n t /*.d o l o a d b a l a n c e rp a g e 4