a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 162|回复: 2

[综合辅导] Linux系统管理:tomcat集群配置

[复制链接]
发表于 2012-8-4 12:07:07 | 显示全部楼层 |阅读模式
Apache + Tomcat + Linux 集群和均衡负载 (Session 同步复制) 配置实践指南
3 h1 K" h6 H* j. K" s- u2 I2 K8 P# T' H   经过我的多次测试实践,在linux和window下测试通过,win的比较简单,因为在默认的情况下,组播就已经打开。! ~. }; [  @+ ?0 Q2 G/ d% i
   1 在linux 下同一台服务器上测试通过(注意端口不要冲突。特别要注意那个tcpListenPort=”4001″ )
: N. _6 U' D9 W; e2 S3 U0 }1 w9 P   2 在window下的同一台服务器上测试通过,注意要点同上) o1 V& l4 l( r) F$ j% l
   3 window下多台不同主机上测试通过,没有什么好注意点,可以完全备份一个tomcat' x! g  Z0 O: |& S6 q
   4.linux多台不同tomcat服务器上测试通过。这个也是最后实现,最实际的方案。(一般不用在win下部署tomcatweb应用。呵呵。我觉得)
2 ~' }8 N/ w# E/ j6 Z8 G& ]   这里讲下第四中情况8 s; W. F$ H$ D5 g+ ?2 X5 B
   先讲一下环境:都是在Red Hat Linux AS4上测试通过
; l3 o+ K- w/ p  |6 m, M   Apache:ip:192.168.1.11 (一台) 版本:2.0/2.2 (做均换负载服务器), i& B4 d3 t0 z9 y/ k
   Tomcat:ip1:192.168.1.12 ip2:192.168.1.13 (两台) 版本:5.0、5.5 (web应用的Real Server)
, I% J( N, c# w& I" \   Jdk:版本1.5 安装在 192.168.1.12 和192.168.1.13上的tomcat服务器上
' B4 ^: g0 _: ^3 _   安装tomcat和apache ,在这里就不讲了。
5 o8 P% X8 @# Y1 n7 N8 |   软件都可以在www.apache.org 的网站上找到(apache,tomcat,mod_jk)+ R% k) W( j" h% }4 C# H
   1.下载mod_jk.so 文件放到apache 下的modules下9 r( r; u7 ^* ~
   地址:http://apache.mirror.phpchina.com/tomcat/tomcat-connectors/jk/binaries/ 请选择正确的操作系统和Apache的版本。! S0 t/ d3 y7 K0 Y0 i
   2.在apache的conf下建立文件workers.properties
$ ]2 c" S- n) d1 ?, V* s
& p5 W% C* O# Y" E) p) P2 `8 Z# % r/ {& A5 x- h2 h, f3 T
   # workers.properties 8 `+ p- J, l* b: ^( M+ [/ B
   #
$ e3 C  J4 R  p) m8 P   # list the workers by name
8 z5 Z: l& f* i5 E" \* d' G, `/ m6 v+ x- |   worker.list=tomcatlb, status
9 k# E, U# _; f   # localhost server 1
回复

使用道具 举报

 楼主| 发表于 2012-8-4 12:07:08 | 显示全部楼层

Linux系统管理:tomcat集群配置

# ------------------------ 2 Z  y, l( c1 L0 l
   worker.tomcat12.port=8009 / k, T3 a' Z, v, A; f2 F9 r4 M: v
   worker.tomcat12.host=192.168.1.12 5 l3 R) T: E4 B
   worker.tomcat12.type=ajp13   X7 y$ `7 o6 O6 A6 P
   worker.tomcat12.lbfactor=1 ! b  S6 m/ q" E; h
   worker.tomcat12.connection_pool_timeout=750
/ l7 L  }8 Y: d1 o. Z' N   worker.tomcat12.socket_keepalive=0 , Q" ~% \  i2 r
   worker.tomcat12.socket_timeout=300000 8 ^2 ?# u. k& ?6 k8 s9 @! ?+ n7 k' q
   worker.tomcat12.connect_timeout=10000   p/ b/ \  R! q3 d/ @2 D
   worker.tomcat12.reply_timeout=330000   a; o8 {5 X/ N( o7 y1 C
   # localhost server 3 8 [5 r' R, J( S9 O/ S1 |
   # ------------------------ 1 o/ [" N1 N5 W7 |4 f' ]' b
   worker.tomcat13.port=8009
3 S; A2 T+ r" |# g  i+ p* X3 M   worker.tomcat13.host=192.168.1.13
( n' l  U' \5 E  j   worker.tomcat13.type=ajp13
3 F8 \; X. D0 l   worker.tomcat13.lbfactor=1
9 Q) P! j& H+ R   worker.tomcat13.connection_pool_timeout=750 / |' C8 b1 e, \3 p* t" E
   worker.tomcat13.socket_keepalive=0
1 X8 F: j3 b* o: u% V) v   worker.tomcat13.socket_timeout=300000
8 y! R" n6 ?1 W! ^8 T0 N   worker.tomcat13.connect_timeout=10000 5 N, H$ c# ^3 X4 F2 Q
   worker.tomcat13.reply_timeout=330000 9 k1 R5 R' i0 o* {& E
   worker.tomcatlb.type=lb
' u* |% t( z" g) h1 O   worker.retries=3 2 C! u6 B. r1 Q% C# h9 h
   worker.tomcatlb.balanced_workers=tomcat12,tomcat13 ) N$ e* w5 a2 B
   worker.tomcatlb.sticky_session=1
9 B4 |1 @( Q2 g   worker.status.type=status
% q9 X* `) x3 j6 F% e3 I3 j$ c6 z
$ j2 v8 E& h  u  z+ |
5 A/ ~( O; j1 S% b' ~
9 {7 T+ |; W0 G* Z

$ S5 c2 B: W7 |$ u( `! Y5 F$ g) }' p3 y8 ~4 h, w

9 F2 o& N/ ~' t4 W% a, M
( w3 f: T3 K4 V4 a
( I' ]9 z4 u7 N* A1 P. x8 |  U8 k* A
+ S7 V7 m) S; l6 {
* q2 R4 N# n8 y6 y& o
- f& U7 X% E; ~( {& v5 \1 z) t+ V6 v1 q5 }; c+ F# H& w. N
' D. o6 W: e0 b" Q, v1 w  p
. H* J' _6 N6 W( Z
" A8 z2 m! c/ }8 [# P$ ?$ K
" l* z- e  F$ |$ B1 e* O- A8 C. k9 Z

  D* R* p( ^  x* y' k5 W
! U5 c! g3 \9 w! A
/ e5 u8 h" Q$ }$ _4 H- B3 B- S- o4 @9 Z8 w) G6 ], Z
5 @& h4 j7 ~( s; g. l9 H" c  f

% a" `8 W. e, x" p7 q
( w+ }7 o3 x7 t$ X5 s8 E
: h: c& }6 \* h2 w4 W
9 X- t" [3 c# ^  v/ f! h8 T2 h3 J5 g
8 t% I6 \1 H4 k1 \( G' s
" U0 m- m5 c( f* T! U+ F# m4 K
! ~* |* f9 @$ u! G8 n

0 E& ~% |- W2 e
1 |" X( X! q* l, ]0 y- u4 o5 b' x5 N

  q, g4 q+ e. ~  x& n8 U3 R* j  c6 M$ `: \  l1 W* n" J

" g' s  u8 }% I3 f& V% V) n! a! I9 O3 _; Z

) j) E; v5 w7 f; }7 x) ]7 ~   3.在conf下添加一个mod_jk.conf文件
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-8-4 12:07:09 | 显示全部楼层

Linux系统管理:tomcat集群配置

</p> $ H  S9 p0 s; C" U8 `* g

$ \9 O; ^4 Q2 _- y& g9 _/ o5 _双击代码全选1
' N) {: p4 f1 a, _2 % a5 j; C6 C+ Q- b) _
3 1 v  A6 s+ V2 W
4 ; L+ ]( P: d! G9 ?1 t+ i& @) u
5 + S2 U' s$ B: P5 b# y3 N. x

* C! S9 l. [2 F
- ^! W, q8 m; X9 m; X+ _7 w, C3 t8 A, D. ~3 a- y8 B; J

" @4 z# t3 A% d! e- O
/ [# q7 Y, f& x9 y1 E
0 }. q- R& ?1 O1 {LoadModule    jk_module  modules/mod_jk.so ' L" T# t2 y, N" i8 ^! b4 E! O
  #configure mod_jk
$ [+ M  l4 m% _, R  JkWorkersFile conf/workers.properties ; l! L$ G1 _2 d* W2 I9 G, h4 _& H# |
  JkLogFile logs/mod_jk.log
' t! D; m" Y. G. d8 \( Z5 o$ Y3 W  JkLogLevel debug 4.增加一个虚拟机配置文件vhosts.conf (这个不是必须的,可以将JkMount 的写其他的配置文件中)# ?' s" c, X9 o& \
2 O" c% i: G# l* v/ c
双击代码全选
0 ^, B& g6 t6 f: k' }
# @  {, G0 p1 F  k4 G: r$ x6 t2 @' n

, W8 s) S% E$ }+ f7 P$ C0 ]- ]$ E: n5 Q' r

( y  _5 ]; F, b8 \; ]8 ?" T, E
* u; o% P5 |" v$ C$ A
8 Q' x  J. o, K7 e% [7 b
8 m2 V% x# |$ o) B' w9 z  Q9 o3 l+ ]7 Z( L2 ^8 I

& p2 w) ^7 j- F$ A' w1 }; IServerAdmin webmaster@dummy-host.example.com % {5 }) d" R7 H
DocumentRoot /data/google
8 i. r6 i  |. E' p1 T& b+ mServerName my.linuxcoffee.org * F) Q2 d7 X  u) N3 c1 V
ErrorLog logs/my.linuxcoffee.org-error_log ' X* {1 Z  T) B. Z( j% o* d3 O
CustomLog logs/my.linuxcoffee.org-access_log common ! r* w3 M- F8 k: \3 h3 P4 C0 x
DirectoryIndex index.htm  index.html & j9 _7 Q! A) l9 f: V  b
JkMount /*.jsp tomcatlb & Y" X6 V+ V8 Z: z6 D. T
JkMount /*.action tomcatlb
/ z, K& j2 K. M2 _' R. [) E" t3 DJKMount /jkstatus status $ C  G* y/ Z8 \* }
1 G- b6 z, i6 @# |: Q& k  M2 ?

& m2 m! D/ J4 _
4 m/ }! [0 I, J0 D0 d5 P9 W) k2 g
4 X2 o5 }/ h0 u3 N# a( k

+ K4 V2 [% r( e: ^$ o
' |+ b& a6 M+ S; l3 }: R
% J- Y4 c6 Z) m  D, v  O' d% u
7 Y( S8 r( B- Z. K1 u3 Z
5 |' F) V% r4 |2 j2 f. h6 U3 t  z4 g! `

: ?" f+ ~8 n6 B+ {$ N2 l) P' X; F1 b

: @, ?; g! k0 Q   4.修改conf下的httpd.conf文件加上& x/ y2 v+ j; \# v' t4 {
2 E9 E0 E! I  t" L
双击代码全选 1 : S/ u9 B8 f1 F; q
2
: C' c$ j' z1 r8 H6 x' l4 m3 @* ^  B$ S3 S: m1 Q$ s* c: {

/ C) [0 G( A6 S8 `1 z9 N- ~# N
! F% |: g; c- r/ d3 e* cInclude conf/vhosts.conf : @! e0 j6 B0 D) m
Include conf/mod_jk.conf 4 j& [) ~; l1 _! z' A8 C# V

* l* R  F( z& B+ U5 @. z0 I2 w( K8 {
: ^% y0 \/ q1 D, n( _6 o$ e+ G

# e% ^; H: H% l
$ a+ p" h5 x1 Z, P: a, o: |8 X1 l. H3 u$ T- @
+ Y$ @8 V1 E1 h' v' v" `
   5.配置tomcat
+ T9 G* v& T3 u3 z. o   讲Cluster 前的注释去掉,启用tomcat集群功能。5 z1 G4 ~, }- L8 P2 G1 {: K
   一般不需要修改什么东西,但在我这边,两台linux的tomcat就是死活找不到node,而同样的配置文件在window下的跑得很是正常。+ g4 z+ S/ Z# u7 J
   有个东西要说明下,因为tomcat的session同步功能需要用到组播,windows默认情况下是开通组播服务的,但是linux默认情况下并没有开通,可以通过指令打开route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0,如果需要服务器启动时即开通组播需在/etc/sysconfig/static-routes文件内加入eht0 net 224.0.0.0 netmask 240.0.0.0。具体组播概念请查阅CCNP相关内容。
7 f' A3 l+ l6 c5 W" p4 Y4 u   可以通过netstate -g 来查看组播状态,也可以在route -e 命令中看到
9 l, i  f+ \; s( Q; I   原来一直提示这个问题& Q# i! H7 g( m- F0 i1 d
   信息: Manager [/clusterapp]: skipping state transfer. No members active in cluster group.) d" X" x6 M3 C+ x& s+ Q7 V, D
   最后测试只要修改在Cluster之间的一段代码+ f* O  ~. d/ h6 T1 g& X: l2 Q  Y

' p& k4 F4 v' Z1 d: e# M; h9 U, F
  l2 D% Q' d, P1 z5 x3 _% f双击代码全选1 " Z' [- D; r1 u9 o- g- E& L, R
2
0 \+ r  @4 l  k" m7 T3 0 x' ?- O; B5 W6 U, v0 c7 |
4
$ V! r- [% g% F' G1 i' W5 # z7 x6 ]8 o# r! g0 e* B5 @& I9 V
6
& Y+ O$ }% d6 S1 L& R* b7 1 m5 c. L8 u2 N4 w4 s. r1 b
8 5 H( e/ j. j1 ~# L% J; T
9
( y+ I' ~) V6 ]) E* `7 ?# T10 . n, d0 b% d2 F2 c) [
11
# t/ E$ X& `' Z$ X- y' L/ R1 A) w12
- ~4 l+ K/ a4 R* q13 ; P# C1 J. a0 s* k1 O, y) t. _3 _
14
7 V" k5 J7 _$ |15
# d9 g) F  n8 k, l& F8 p
7 ^: n  R7 Y# ?: p3 [% o3 ?9 {; C1 V6 f( U. R) u
4 {6 K3 P3 E: g, w; e* b
( x6 r  w& O1 r5 }* o, s8 a
8 L7 S- c. c+ ?  |# i! _
7 A& @& ^  T, }' u( c4 O: Q
  `- U% `6 R2 U! {" f
  S" Q' e$ Z6 i! X  b7 f& y4 A

" H+ W3 [- c; _6 J* j, I4 r* U& V- z; Q4 b( [( Q
' p; b- h! L% n0 K
- S5 i2 O' z* k) G! ^% J
0 \9 p! |( [: n2 D: j' K- U+ \
5 C0 z4 L2 M' W% Z& i' j1 Y/ H9 q

  u# ~9 m7 `& }! h, \2 ^" A+ x% s) B  q; T
Receiver ) B5 w3 r7 r- z) r- w' r
   className="
* {5 G" L* w1 x9 M   org.apache.catalina.cluster.tcp.ReplicationListener"
% ?: b' k! I/ b  y   tcpListenAddress="auto" 9 {3 [0 ]+ s# V5 \
   tcpListenPort="4001" 5 r; x) W  D7 I% o' x6 e
   tcpSelectorTimeout="100" 0 M7 V( b7 x* h5 Z" P( Y# D
   tcpThreadCount="6"/> ' @3 i( D6 m8 e/ q: R
   改为 * a  Y7 {, ^& X6 S) H& \' }
   Receiver
/ x& c6 Q& h5 J* N/ C8 \& J   className="   p2 X7 ~: m& s% g' e1 e" p
   org.apache.catalina.cluster.tcp.ReplicationListener"   |9 N* b/ @5 i- F) b# x4 }0 y" ?
   tcpListenAddress="192.168.1.12" 6 q. e% w6 g4 N
   tcpListenPort="4001" , |7 v" W% M: O# E1 ~# q
   tcpSelectorTimeout="100" : \$ A3 i" v/ l# U& [
   tcpThreadCount="6"/> ( m" l$ w4 z5 V6 {7 p* m# E
9 y+ U& C# ^" {. Q" I% c

: W# b8 w$ J, K; M' {! v: o
! U- P1 ]! q* }, Q/ f5 i4 P
, ]. p2 m$ A  C: W2 {, {4 f( w5 r/ d- x- O2 m5 [

/ [+ i  z0 D) v& N" N  v1 ^; \% R) l3 a& X6 g

/ ]  b/ t0 ?+ g# P( S- e  C! T1 m; b% Q% C" G) c& |7 C
$ N+ S; ]* S8 ^
0 n. V9 A5 `( Q! m: G5 G

$ D$ ]8 ?( i% |! e; ~  S/ ]8 W! }: P* z' H+ b+ e5 l8 ^/ I# l1 @
9 d7 R. X! |9 g, r9 P. U

& Y3 K/ H, r" B9 [- W4 T+ L7 ?3 m% v$ N' y2 I6 o7 O7 o
中华考试网(www.Examw。com); h) p  P7 y0 R. h5 D) D9 E

% c& P; [$ o* f6 s" _% _) N0 D8 |# q& o* {/ `+ _8 c! f9 X% \
' U- Q, u/ c' x3 h5 r7 ^
   在13的服务器上也将这一段修改为自己的ip
" x3 w: R6 v7 f+ k& s$ {' u1 B   然后打开jvmRoute ,跟workers.properties 的两个tomcat名字相匹配
9 A! m& n( J( }" B/ F4 ~3 n1 K5 [0 ~, a! W: k
ip1
, s7 }; D$ `) O  Engine name="Standalone" defaultHost="localhost" jvmRoute="tomcat12"/> 4 A) u; L" m9 L$ i# Z5 s
  ip2 ; s) Y7 v  ~2 L/ L$ U# o
  Engine name="Standalone" defaultHost="localhost" jvmRoute="tomcat13"/> ; R( m( k& V& {; C1 r) w

: q1 F# u! v6 v6 V+ p
* ]. e: a: s& P5 ]
, T# B0 Q( @' N) `: H
1 z$ `0 L3 Y9 T  b+ w
* ]* H9 z* }" W+ ]5 b6 n7 y
2 V/ U5 Y- U7 q/ t/ u* D& F1 L5 ]1 W7 Z4 P
6 e$ X) c) R+ B! o( V) P0 d8 u7 p. W
+ W5 }+ s) |0 b  L& h, X; |
   好了,apache和tomcat的配置好了,可以访问了。+ T/ B" w1 G4 X$ M& f$ S
   这里,再提供一个链接,可以监控和配置负载均衡的各种信息
5 r" l" P* w  B9 Z! C8 x/ Y( j. a   http://192.168.1.11/jkstatus或http://my.linuxcoffee.org、jkstatus来访问网站。
9 }/ ?3 l& }  l$ |6 n   注:需要在web.xml的display-name后面 下加上一段。 这个跟顺序有关的,不然,xml文件会变红哦。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-6 12:58 , Processed in 0.275048 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表