文档库 最新最全的文档下载
当前位置:文档库 › Linux平台Apache高可用双机集群Tomcat负载均衡集群配置手册

Linux平台Apache高可用双机集群Tomcat负载均衡集群配置手册

Linux平台Apache高可用双机集群Tomcat负载均衡集群配置手册
Linux平台Apache高可用双机集群Tomcat负载均衡集群配置手册

Linux平台Apache双机高可用集群

+ Tomcat负载均衡集群配置手册

在这个配置手册中,使用的操作系统和软件清单如下:

操作系统:

RedHat Enterprise Linux AS4 U4 64bit(安装时最好选择完全安装)

软件:

jdk-1_5_0_15-linux-amd64.bin

Tomcat5.5.26

httpd-2.0.63.tar.gz

jakarta-tomcat-connectors-jk2-src-current.tar.gz

ipvsadm-1.24.tar.gz

libnet.tar.gz

heartbeat-2.1.3-3.el4.centos.x86_64.rpm

heartbeat-pils-2.1.3-3.el4.centos.x86_64.rpm

heartbeat-stonith-2.1.3-3.el4.centos.x86_64.rpm

因为是linux操作系统,所以在安装软件时请使用对应自己操作系统内核的软件,这是整个集群成功的第一步。本配置手册中的软件都是对应RedHat Enterprise Linux AS4 U4 64bit 这个版本的软件。

jdk-1_5_0_15-linux-amd64.bin

JAVA环境包使用的是64位1.5版

Tomcat版本为公司指定的5.5版本

Apache为2.0.63版

jakarta-tomcat-connectors-jk2-src-current.tar.gz

是连接Apache和Tomcat的连接插件,具体可以去Tomcat网站上查找下载

ipvsadm-1.24.tar.gz

libnet.tar.gz

这两个是用于2台Apache服务器虚拟一个IP地址使用

heartbeat-2.1.3-3.el4.centos.x86_64.rpm

heartbeat-pils-2.1.3-3.el4.centos.x86_64.rpm

heartbeat-stonith-2.1.3-3.el4.centos.x86_64.rpm

这3个软件是用于2台Apache服务器之间的心跳检测

第 3 页 总 13 页

结构图

Apache1

以以以以以

Tomcat1

Tomcat2

Apache2

2台Tomcat 服务器使用Tomcat 软件可以自己做集群,2台Apache 服务器需要其他的软件实现虚拟服务器功能,工作站访问虚拟IP 地址访问2台Apache 服务器,再通过Apache 服务器访问Tomcat 服务器

1.安装JAVA环境包

1)输入命令:./ jdk-1_5_0_15-linux-amd64.bin

执行完毕后,会在当前目录下生成一个JDK-1.5.0_15的文件夹

2)在 /usr/local/下新建一个名字为JAVA文件夹,将个JDK-1.5.0_15的文件夹拷入到该文件夹下

3)设置环境变量。进入到 /etc 下,找到一个名为profile的文件,使用TXT方式打开,再改文件内容最后添加如下内容:

JAVA_HOME=/usr/java/jdk1.5.0_15

CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib

PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin

export PATH JAVA_HOME CLASSPATH

4)重启服务器。重启后输入命令:java –version如果显示的jdk版本和安装的软件一样,则java环境已经装好

在每个Apache和Tomcat服务器上都安装JAVA环境

2.Tomcat的安装和集群配置

1)这里使用的Tomcat是一个已经解压缩了的程序包,拷入到具体的文件加下,就可以直接启动。启动方法是通过终端进入该Tomcat程序包,输入:./catalina.sh run 。Tomcat 启动后,在浏览器中输入该服务器的IP地址,通过8080端口打开,如果能看到以下页面,代表Tomcat安装成功。分别在2台Tomcat服务器上安装并能正常启动Tomcat

2)现在开始配置Tomcat集群。

A.分别修改两个个tomcat的配置文件conf/server.xml,修改内容如下

修改前

修改后

managerClassName="org.apache.catalina.cluster.session.D eltaManager"

expireSessionsOnShutdown="false"

useDirtyFlag="true"

notifyListenersOnReplication="true">

className="org.apache.catalina.cluster.mcast.McastServic e"

mcastAddr="228.0.0.4"

mcastPort="45564"

mcastFrequency="500"

mcastDropTime="3000"/>

className="org.apache.catalina.cluster.tcp.ReplicationLi stener"

tcpListenAddress="auto"

tcpListenPort="4001"

tcpSelectorTimeout="100"

tcpThreadCount="6"/>

className="org.apache.catalina.cluster.tcp.ReplicationTr ansmitter"

replicationMode="pooled"

ackTimeout="5000"/>

className="org.apache.catalina.cluster.tcp.ReplicationValve"

filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\. html;.*\.css;.*\.txt;"/>

className="org.apache.catalina.cluster.deploy.FarmWarDeployer"

tempDir="/tmp/war-temp/"

deployDir="/tmp/war-deploy/"

watchDir="/tmp/war-listen/"

watchEnabled="false"/>

className="org.apache.catalina.cluster.session.ClusterSessionListener"/>

将集群配置选项的注释放开即可,即删除CLUSTER的注释:

B.再分别修改两个tomcat的配置文件conf/server.xml,修改内容如下

修改前

on to the appropriate Host (virtual host). -->

修改后

jvmRoute="tomcat1">

将其中的Engine name="Standalone"全部修改为Engine name=" Catalina "和Engine name=" Catalina "

将其中的jvmRoute="jvm1"分别修改为jvmRoute="tomcat1"和jvmRoute="tomcat2"

注意:

A.此处将Standalone修改为Catalina是为了配合大洋公司的检索软件使用,如是其他软件请更具具体环境配置

B.tomcat1和tomcat2是两台Tomcat服务器的机器名,请根据实际环境配置

3)重新启动两个Tomcat程序,至此Tomcat集群配置完毕

3.Apache安装及Apache与Tomcat互联

1)安装Apache。在终端中依次输入命令,将Apache安装到/usr/local/apache目录下:

#tar –zxvf httpd-2.0.63.tar.gz

#cd httpd-2.0.63

#./configure –prefix=/usr/local/apache

#make

#make install

安装好后,使用终端进入/usr/local/apache/bin目录下,使用命令 ./apachetl start 启动Apache 在浏览器中输入该服务器的IP地址,使用80端口,当看到以下界面时,表示Apache安装成功

2)Apache安装好后现在需要安装编译Apache和Tomcat的连接插件:mod_jk2.so。

使用终端先进入存放jakarta-tomcat-connectors-jk2-src-current.tar这个软件包文件夹,输入以下命令:

#tar –zxvf jakarta-tomcat-connectors-jk2-src-current.tar.gz

这时在同一个目录下会出现一个jakarta-tomcat-connectors-jk2-2.0.4-src的文件夹,接下来进入该文件夹

#cd jakarta-tomcat-connectors-jk2-2.0.4-src

#cd jk/native2

#./configure –with-apxs2=/usr/local/httpd/bin/apxs

–-with-apache2=/usr/local/httpd/(路径根据实际情况输入)

#make

#cd ../build/jk2/apache2/

经过以上操作,得到mod_jk2.so的module,把这个复制到安装好的Apache的module 目录下

3)配置apache的安装目录中的conf目录的配置文件httpd.conf,在文件中加LoadModule 模块配置信息的最后加上一句LoadModule jk2_module modules/mod_jk2.so

如下位置

LoadModule setenvif_module modules/mod_setenvif.so

#LoadModule speling_module modules/mod_speling.so

#LoadModule status_module modules/mod_status.so

#LoadModule unique_id_module modules/mod_unique_id.so

LoadModule userdir_module modules/mod_userdir.so

#LoadModule usertrack_module modules/mod_usertrack.so

#LoadModule vhost_alias_module modules/mod_vhost_alias.so

#LoadModule ssl_module modules/mod_ssl.so

LoadModule jk2_module modules/mod_jk2.so

4)在apache的安装目录中的conf目录下创建文件workers2.properties,写入文件内容如下

[logger.apache2]

level=DEBUG

#第二个Tomcat的配置

[channel.socket:tomcat2]

port=8009

host=192.168.1.107 # Server 2 IP

# 定义worker

[ajp13:tomcat2]

channel=channel.socket:tomcat2

#第一个Tomcat的配置

[channel.socket:tomcat1]

port=8009

host=192.168.1.106 # Server 1 IP

# 定义worker

[ajp13:tomcat1]

channel=channel.socket:tomcat1

#定义Balancer(负载均衡器)

[lb:lb]

worker=ajp13:tomcat1

worker=ajp13:tomcat2

#Uri的映射

[uri:/*]

group=lb:lb

这里的IP和Tomcat1及Tomcat2,需要根据实际情况配置

4.检验Apache和Tomcat互连以及Tomcat集群是否生效

1)在Apache服务器浏览器上输入本机的IP地址,如显示的界面为Tomcat的界面,则代表Apache与Tomcat连通正常

2)Tomcat集群测试

在两个tomcat的\tomcat1\Tomcat 5.0\webapps\ROOT\下建立test.jsp的页面文件,内容分别如下:

This is tomcat1

This is tomcat2

重启Apache和Tomcat程序,通过其他机器不断浏览器访问2台Apache服务器的IP地址下的test.jsp文件,会随机显示2个页面,一个显示“This is tomcat1”另一个显示“This is tomcat2”。如能正常访问,能运行,则已建立负载均衡。

5.Apache集群的建立

Apache自身不能建立集群,在这里通过使用Linux的LVS(Linux Virtual Server)虚拟一个服务器对外提供服务。使用heartbeat软件来建立主备服务器之间的心跳监控,当主服务器当机之后,备服务器可以自动接管虚拟服务。这里做的集群是高可用,同一时间只有一台Apache对外提供服务,另一台处于热备状态。

安装软件之前,修改2台Apache的/etc/hosts文件,

在WEB01上:

127.0.0.1 localhost.localdomain localhost

20.20.20.1 WEB01

20.20.20.2 WEB02

在WEB02上

127.0.0.1 localhost.localdomain localhost

20.20.20.2 WEB02

20.20.20.1 WEB01

1)安装LVS

安装ipvsadm-1.24.tar.gz和libnet.tar.gz

#tar –zxvf ipvsadm-1.24.tar.gz

#cd ipvsadm-1.24

#make

#make install

在make时会出现很多错误信息,请按照如下操作可以正常编译

#ln –s /usr/src/kernels/linux-2.6.9-42.EL-smp-x86_64/ /usr/src/linux

#cd ipvsadm-1.24

#make

#make install

注意:这里/usr/src/kernels/linux-2.6.9-42.EL-smp-x86_64/,红色部分代表你现在使用的内核,一定要选择当前正在使用的内核,不能选错,如果不知道当前使用的内核是哪个,可以输入umane -a命令查看

#tar –zxvf libnet.tar.gz

#cd libnet

#./configure

#make

#make install

#groupadd –g 694 haclient

#useradd –u 694 –g haclient hacluster

安装好后,输入 ipvsadm –version,如果显示正确的ipvsadm版本,则安装成功。

2)安装Heartbeat

安装Heartbeat三个软件的时候是有要求的,先安装heartbeat-pils,再安装

heartbeat-stonith,最后才能安装heartbeat,这里安装的是centos版本,要注意三个软件的版本要一致。

#rpm –ivh heartbeat-pils-2.1.3-3.el4.centos.x86_64.rpm

#rpm –ivh heartbeat-stonith-2.1.3-3.el4.centos.x86_64.rpm

#rpm –ivh heartbeat-2.1.3-3.el4.centos.x86_64.rpm

3)安装好后,开始配置LVS和Heartbeat

安装好后,将heartbeat的三个文件:ha.cf、haresources、authkeys复制到/etc/ha.d/下

A.修改ha.cf,这个文件是心跳的配置

logfile /var/log/ha-log

keepalive 2

deadtime 30

warntime 10

initdead 120

udpport 694

bcast eth0 # Linux

auto_failback on

node WEBO2

node WEB01

ping_group group1 20.20.20.1 20.20.20.2 (两台Apache的IP地址)

respawn hacluster /usr/lib64/heartbeat/ipfail

apiauth ipfail gid=root uid=root

hopfudge 1

这里的WEB01和WEB02是这两台服务器机器名,请根据实际情况更改,IP地址也一样

B.配置心跳加密方式:authkeys

auth 1

1 crc

保存后,在终端中输入:

#chmod 600 authkeys

这个文件的权限必须是600

C.配置心跳的监控:haresources

WEB01 IPaddr::172.27.201.150 ipvsadm httpd

这里172.27.201.150是LVS的虚拟IP

4)进入/etc/目录,找到sysctl.conf文件,打开,在最后面加入以下语句,保存

net.ipv4.conf.all.send_redirects = 1

net.ipv4.conf.default.send_redirects = 1

net.ipv4.conf.eth0.send_redirects = 1

net.ipv4.conf.lo.arp_ignore = 1

net.ipv4.conf.lo.arp_announce = 2

net.ipv4.conf.all.arp_ignore = 1

net.ipv4.conf.all.arp_announce = 2

5)在终端中依次运行下列命令:

#cd /etc

#sysctl -p

#/sbin/ifconfig eth0:0 20.20.20.150 broadcast 20.20.20.150 netmask 255.255.255.255 up

#/sbin/route add -host 20.20.20.150 dev eth0:0

#/sbin/ipvsadm -C

#/sbin/ipvsadm -A -t 20.20.20.150:80 -s rr

#/sbin/ipvsadm -a -t 20.20.20.150:80 -r 20.20.20.1:80 -g -w 1

#/sbin/ifconfig lo:0 20.20.20.150 broadcast 20.20.20.150 netmask

255.255.255.255 up

#/sbin/route add -host 20.20.20.150 dev lo:0

这里注意命令中的大小写,蓝颜色代表需要大写。红颜色表示虚IP,黄色代表当前这台服务器的实IP地址,这两个IP地址请按照实际情况填写

6)这时输入 ipvsadm –l 查看当前节点,如果能正常显示出2个节点,则代表LVS建立成功。

接下来启动heartbeat,在终端中输入 /etc/ini.d/heartbeat start

当系统显示heartbeat启动[OK]后,表示心跳启动成功,这时可以对Apache服务器的集群测试了

7)测试时将主节点服务器关闭,通过第3台机器去ping这个20.20.20.150的虚IP,当主节点关机后,虚IP会断开小段时间(一般在30S左右的时间),接着备节点接管服务,虚IP恢复,这是访问应用网页,检查是否访问正常。

6.Tomcat和Apache的开机自启动

打开每台服务器的/etc/rc.local文件,在后面添加以下两行:

Tomcat服务器

Export JAVA_HOME=/local/java/jdk1.5.0

这行中的/local/java/jdk1.5.0请根据安装情况写

/usr/local/ Tomcat /Catalina.sh run &

这行/usr/local/Tomcat/根据实际Apache安装目录

Apache服务器

Export JAVA_HOME=/local/java/jdk1.5.0

这行中的/local/java/jdk1.5.0请根据安装情况写

/usr/local/apache/bin/apachectl start &

这行/usr/local/Apache/根据实际Apache安装目录

添加完后保存,重启服务器,系统启动完毕后直接打开浏览器检验Apache和Tomcat是否已经启动

相关文档