linux下tomcat集群配置

运维 系统运维
经过我的多次测试实践,在linux和window下测试通过,win的比较简单,因为在默认的情况下,组播就已经打开。

Apache + Tomcat + Linux 集群和均衡负载 (Session 同步复制) 配置实践指南

经过我的多次测试实践,在linux和window下测试通过,win的比较简单,因为在默认的情况下,组播就已经打开。

1 在linux 下同一台服务器上测试通过(注意端口不要冲突。特别要注意那个tcpListenPort=”4001″ )

2 在window下的同一台服务器上测试通过,注意要点同上

3 window下多台不同主机上测试通过,没有什么好注意点,可以完全备份一个tomcat

4.linux多台不同tomcat服务器上测试通过。这个也是最后实现,最实际的方案。(一般不用在win下部署tomcatweb应用。呵呵。我觉得)

这里讲下第四中情况

先讲一下环境:都是在Red Hat Linux AS4上测试通过

Apache:ip:192.168.1.11 (一台) 版本:2.0/2.2 (做均换负载服务器)

Tomcat:ip1:192.168.1.12 ip2:192.168.1.13 (两台) 版本:5.0、5.5 (web应用的Real Server)

Jdk:版本1.5 安装在 192.168.1.12 和192.168.1.13上的tomcat服务器上

安装tomcat和apache ,在这里就不讲了。

软件都可以在www.apache.org 的网站上找到(apache,tomcat,mod_jk)

1.下载mod_jk.so 文件放到apache 下的modules下

地址:http://apache.mirror.phpchina.com/tomcat/tomcat-connectors/jk/binaries/ 请选择正确的操作系统和Apache的版本。

2.在apache的conf下建立文件workers.properties

添加内容:

#

# workers.properties

#

# list the workers by name

worker.list=tomcatlb, status

# localhost server 1

# ------------------------

worker.tomcat12.port=8009

worker.tomcat12.host=192.168.1.12

worker.tomcat12.type=ajp13

worker.tomcat12.lbfactor=1

worker.tomcat12.connection_pool_timeout=750

worker.tomcat12.socket_keepalive=0

worker.tomcat12.socket_timeout=300000

worker.tomcat12.connect_timeout=10000

worker.tomcat12.reply_timeout=330000

# localhost server 3

# ------------------------

worker.tomcat13.port=8009

worker.tomcat13.host=192.168.1.13

worker.tomcat13.type=ajp13

worker.tomcat13.lbfactor=1

worker.tomcat13.connection_pool_timeout=750

worker.tomcat13.socket_keepalive=0

worker.tomcat13.socket_timeout=300000

worker.tomcat13.connect_timeout=10000

worker.tomcat13.reply_timeout=330000

worker.tomcatlb.type=lb

worker.retries=3

worker.tomcatlb.balanced_workers=tomcat12,tomcat13

worker.tomcatlb.sticky_session=1

worker.status.type=status

3.在conf下添加一个mod_jk.conf文件

LoadModulejk_module  modules/mod_jk.so

#configure mod_jk

JkWorkersFile conf/workers.properties

JkLogFile logs/mod_jk.log

JkLogLevel debug

#p#

4.增加一个虚拟机配置文件vhosts.conf (这个不是必须的,可以将JkMount 的写其他的配置文件中)

ServerAdmin webmaster@dummy-host.example.com

DocumentRoot /data/google

ServerName my.linuxcoffee.org

ErrorLog logs/my.linuxcoffee.org-error_log

CustomLog logs/my.linuxcoffee.org-access_log common

DirectoryIndex index.htm  index.html

JkMount /*.jsp tomcatlb

JkMount /*.action tomcatlb

JKMount /jkstatus status

4.修改conf下的httpd.conf文件加上

Include conf/vhosts.conf

Include conf/mod_jk.conf

5.配置tomcat

讲Cluster 前的注释去掉,启用tomcat集群功能。

一般不需要修改什么东西,但在我这边,两台linux的tomcat就是死活找不到node,而同样的配置文件在window下的跑得很是正常。

有个东西要说明下,因为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相关内容。

可以通过netstate -g 来查看组播状态,也可以在route -e 命令中看到

原来一直提示这个问题

信息: Manager [/clusterapp]: skipping state transfer. No members active in cluster group.

最后测试只要修改在Cluster之间的一段代码

Receiver

className="

org.apache.catalina.cluster.tcp.ReplicationListener"

tcpListenAddress="auto"

tcpListenPort="4001"

tcpSelectorTimeout="100"

tcpThreadCount="6"/>

改为

Receiver

className="

org.apache.catalina.cluster.tcp.ReplicationListener"

tcpListenAddress="192.168.1.12"

tcpListenPort="4001"

tcpSelectorTimeout="100"

tcpThreadCount="6"/>

在13的服务器上也将这一段修改为自己的ip

然后打开jvmRoute ,跟workers.properties 的两个tomcat名字相匹配

ip1

Engine name="Standalone" defaultHost="localhost" jvmRoute="tomcat12"/>

ip2

Engine name="Standalone" defaultHost="localhost" jvmRoute="tomcat13"/>

好了,apache和tomcat的配置好了,可以访问了。

这里,再提供一个链接,可以监控和配置负载均衡的各种信息

http://192.168.1.11/jkstatushttp://my.linuxcoffee.org、jkstatus来访问网站。

注:需要在web.xml的display-name后面 下加上一段。 这个跟顺序有关的,不然,xml文件会变红哦。

xml version="1.0" encoding="UTF-8"?>

web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">

display-name>TomcatDemodisplay-name>

distributable/>

web-app>

【编辑推荐】

  1. linux大扫盲:linux之Tar命令常用参数
  2. Linux系统下批量替换文件内容
  3. 永远不要运行的危险Linux命令!
责任编辑:赵宁宁 来源: 新浪博客
相关推荐

2014-07-29 17:46:09

Linuxtomcattomcat集群

2009-11-24 09:26:49

LinuxJDKTomcat

2011-11-28 22:18:53

Nginxtomcat集群

2012-05-30 10:09:57

ApacheTomcat

2011-02-25 11:16:38

ApacheTomcat

2014-06-30 09:27:17

UbuntuTomcat集群

2009-02-06 13:19:02

JSP配置Tomcat

2011-05-07 09:32:31

Tomcat

2020-03-23 22:50:36

WindowsNginxTomcat

2017-04-13 13:00:27

LinuxWindowstomcat

2009-06-03 16:33:53

安装jdk tomcaeclipse配置

2009-07-01 14:09:24

Servlet和BeaJSP

2011-05-13 09:34:51

TomcatMysql连接池

2013-12-12 13:25:18

2010-04-20 22:36:52

负载均衡配置

2011-02-23 15:50:04

Linuxvsftpd

2011-02-23 17:23:35

linux vsftpd

2011-01-11 11:32:20

Linuxlogrotate配置

2011-02-23 15:50:04

Linuxvsftpd

2011-08-15 10:14:41

Sencha ToucMyEclipseTomcat
点赞
收藏

51CTO技术栈公众号