Linux平台Apache双机高可用集群+ Tomcat负载均衡集群配置手册在这个配置手册中,使用的操作系统和软件清单如下:操作系统:RedHat Enterprise Linux AS4 U4 64bit(安装时最好选择完全安装)软件:jdk-1_5_0_15-linux-amd64.binTomcat5.5.26httpd-2.0.63.tar.gzjakarta-tomcat-connectors-jk2-src-current.tar.gzipvsadm-1.24.tar.gzlibnet.tar.gzheartbeat-2.1.3-3.el4.centos.x86_64.rpmheartbeat-pils-2.1.3-3.el4.centos.x86_64.rpmheartbeat-stonith-2.1.3-3.el4.centos.x86_64.rpm因为是linux操作系统,所以在安装软件时请使用对应自己操作系统内核的软件,这是整个集群成功的第一步。
本配置手册中的软件都是对应RedHat Enterprise Linux AS4 U4 64bit 这个版本的软件。
jdk-1_5_0_15-linux-amd64.binJAVA环境包使用的是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.gzlibnet.tar.gz这两个是用于2台Apache服务器虚拟一个IP地址使用heartbeat-2.1.3-3.el4.centos.x86_64.rpmheartbeat-pils-2.1.3-3.el4.centos.x86_64.rpmheartbeat-stonith-2.1.3-3.el4.centos.x86_64.rpm这3个软件是用于2台Apache服务器之间的心跳检测结构图Apache1以以以以以Tomcat1Tomcat2Apache22台Tomcat服务器使用Tomcat软件可以自己做集群,2台Apache服务器需要其他的软件实现虚拟服务器功能,工作站访问虚拟IP地址访问2台Apache服务器,再通过Apache服务器访问Tomcat服务器第3 页总13 页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_15CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/libPATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/binexport PATH JAVA_HOME CLASSPATH4)重启服务器。
重启后输入命令:java –version如果显示的jdk版本和安装的软件一样,则java环境已经装好在每个Apache和Tomcat服务器上都安装JAVA环境2.Tomcat的安装和集群配置1)这里使用的Tomcat是一个已经解压缩了的程序包,拷入到具体的文件加下,就可以直接启动。
启动方法是通过终端进入该Tomcat程序包,输入:./catalina.sh run 。
Tomcat 启动后,在浏览器中输入该服务器的IP地址,通过8080端口打开,如果能看到以下页面,代表Tomcat安装成功。
分别在2台Tomcat服务器上安装并能正常启动Tomcat2)现在开始配置Tomcat集群。
A.分别修改两个个tomcat的配置文件conf/server.xml,修改内容如下修改前<!--<Cluster className="org.apache.catalina.cluster.tcp.SimpleTcpCluster"managerClassName="org.apache.catalina.cluster.session.D eltaManager"expireSessionsOnShutdown="false"useDirtyFlag="true"notifyListenersOnReplication="true"><MembershipclassName="org.apache.catalina.cluster.mcast.McastServic e"mcastAddr="228.0.0.4"mcastPort="45564"mcastFrequency="500"mcastDropTime="3000"/><ReceiverclassName="org.apache.catalina.cluster.tcp.ReplicationLi stener"tcpListenAddress="auto"tcpListenPort="4001"tcpSelectorTimeout="100"tcpThreadCount="6"/><SenderclassName="org.apache.catalina.cluster.tcp.ReplicationTr ansmitter"replicationMode="pooled"ackTimeout="5000"/><ValveclassName="org.apache.catalina.cluster.tcp.ReplicationValve"filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/><DeployerclassName="org.apache.catalina.cluster.deploy.FarmWarDeployer"tempDir="/tmp/war-temp/"deployDir="/tmp/war-deploy/"watchDir="/tmp/war-listen/"watchEnabled="false"/><ClusterListenerclassName="org.apache.catalina.cluster.session.ClusterSessionListener"/></Cluster>-->修改后<!-- modify by whh --><Cluster className="org.apache.catalina.cluster.tcp.SimpleTcpCluster"managerClassName="org.apache.catalina.cluster.session.D eltaManager"expireSessionsOnShutdown="false"useDirtyFlag="true"notifyListenersOnReplication="true"><MembershipclassName="org.apache.catalina.cluster.mcast.McastServic e"mcastAddr="228.0.0.4"mcastPort="45564"mcastFrequency="500"mcastDropTime="3000"/><ReceiverclassName="org.apache.catalina.cluster.tcp.ReplicationLi stener"tcpListenAddress="auto"tcpListenPort="4001"tcpSelectorTimeout="100"tcpThreadCount="6"/><SenderclassName="org.apache.catalina.cluster.tcp.ReplicationTr ansmitter"replicationMode="pooled"ackTimeout="5000"/><ValveclassName="org.apache.catalina.cluster.tcp.ReplicationValve"filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\. html;.*\.css;.*\.txt;"/><DeployerclassName="org.apache.catalina.cluster.deploy.FarmWarDeployer"tempDir="/tmp/war-temp/"deployDir="/tmp/war-deploy/"watchDir="/tmp/war-listen/"watchEnabled="false"/><ClusterListenerclassName="org.apache.catalina.cluster.session.ClusterSessionListener"/></Cluster><!-- modify by whh -->将集群配置选项的注释放开即可,即删除CLUSTER的注释:<!— -->B.再分别修改两个tomcat的配置文件conf/server.xml,修改内容如下修改前<!-- An Engine represents the entry point (within Catalina) that processes every request. The Engine implementation for Tomcat stand aloneanalyzes the HTTP headers included with the request, and passes themon to the appropriate Host (virtual host). --><!-- You should set jvmRoute to support load-balancing via AJP ie :<Engine name="Standalone" defaultHost="localhost" jvmRoute="jvm1">--><!-- Define the top level container in our container hierarchy --><Engine name="Catalina" defaultHost="localhost">修改后<!-- An Engine represents the entry point (within Catalina) that processesevery request. The Engine implementation for Tomcat stand aloneanalyzes the HTTP headers included with the request, and passes themon to the appropriate Host (virtual host). --><!-- You should set jvmRoute to support load-balancing via AJP ie :--><Engine name=" Catalina " defaultHost="localhost"jvmRoute="tomcat1"><!-- Define the top level container in our container hierarchy<Engine name="Catalina" defaultHost="localhost">-->将其中的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。