两台CentOS5.2上apache+tomcat的负载均衡

更新时间:2023-04-25 07:34:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

两台CentOS5.2上apache+tomcat的负载均衡(2009-06-05 16:37:28)

标签:it分类:linux 两台CentOS5.2上apache+tomcat的负载均衡

今天在在真实的服务器上测试通过,目前总共测试了5天(抚琴煮酒),另需要说明的是现在网上以讹传讹的文章太多,这篇文章有时间我会持续更新的,大家暂时就不要转了,目前没做session复制的相关测试。

所需软件

apache-tomcat-6.0.18.tar.gz

jdk-1_5_0_17-linux-i586-rpm.bin

tomcat-connectors-1.2.27-src.tar.gz

httpd-2.2.11.tar.gz

在两台机器上做apache + tomcat 的负载均衡:计算机apache上同时Apache+tomcat(tomcat1:192.168.19.199)和tomcat2(tomcat2:192.168.19.81)在tomcat1上安装apache + jdk + tomcat + tomcat-connectors ,在tomcat2上安装jdk+tomcat;tomcat1做均衡并提供服务;tomcat1上apache网页文件目录和tomcat网页文件目录要指向同一个目录

一、测试环境及软件安装:

linux 2.6 内核centos 5.2

本例二台tomcat 不在同一机器

先安装了所需的程序库,因服务器只提供apache+tomcat服务,所以只

安装gcc

yum -y install gcc

下载源码包:

apache2 和tomcat5都可以在bcf07c8fcc22bcd126ff0c1f

tomcat5需要JDK1.5的版本。

JK本文用的源码包tomcat-connectors

Apache 安装:

# tar zxvf httpd-2.2.11.tar.gz

#cd httpd-2.2.11

# ./configure --prefix=/usr/local/apache2 --enable-modules=so --enable-so # make && make install

/usr/local/apache2/bin/apachectrl start

看到apache就配置成功了

JDK的安装

#chmod 755 jdk-1_5_0_17-linux-i586.bin

#./jdk-1_5_0_17-linux-i586.bin

# mv jdk-1_5_0_17 /usr/local/

到此JDK已经安装完成

到/usr/bin目录下,把原用的java,javac文件删除:

#rm -rf java

#rm –rf javac

在/usr/bin 下建立软连接java

# ln -s /usr/local/jdk-1_5_0_17/bin/java /usr/bin/java

# ln -s /usr/local/jdk-1_5_0_17/bin/javac /usr/bin/javac

# java –version

# javac -version

java version "1.4.2_08"

Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_08-b03) Java HotSpot(TM) Client VM (build 1.4.2_08-b03, mixed mode)

为了方便下在的工作建立两个软链接:

ln -s /usr/local/jdk-1_5_0_17 /usr/local/jdk

ln -s /usr/local/jdk-1_5_0_17/jre /usr/local/jre

Tomcat的安装

#tar -zxvf apache-tomcat-6.0.18.tar.gz

# mv apache-tomcat-6.0.18 /usr/local/tomcat

设置环境变量: vim /etc/rc.d/rc.local,以追加的形式添加如下内容JAVA_HOME=/usr/local/jdk

export JAVA_HOME

JRE_HOME=/usr/local/jre

export JRE_HOME

CLASSPATH=/usr/local/tomcat/common/lib/:/usr/local/jdk/lib:/usr/local/jre /lib

export CLASSPATH

PATH=$PATH:/usr/local/tomcat/bin/:/usr/local/apache/bin:/usr/local/jdk/bi n:/usr/local/jre/bin

export PATH

TOMCAT_HOME=/usr/local/tomcat

export TOMCAT_HOME

启动tomcat以检查是否存在错误:

#cd /usr/local/tomcat/bin

#./startup.sh

IP地址:8080 可以看到猫头:)成功了。

在另一台机器上也安装tomcat 并配置好。

JK 安装(整合apache tomcat)

# tar zxvf tomcat-connectors-1.2.27-src.tar.gz

#cd tomcat-connectors-1.2.27-src/native

# ./configure --with-apxs=/usr/local/apache2/bin/apxs --with-java-home=/usr/local/jdk

# make && make install

在/usr/local/apache2/modules/ 下会产生mod_jk.so

修改apache配置文件:

LoadModule jk_module modules/mod_jk.so

JkWorkersFile /usr/local/tomcat/conf/jk/workers.properties JK配置文件负载的配置

JkLogFile /usr/local/tomcat/logs/mod_jk.log 相关日志的设置JkLogLevel info 日志的级别

JkMount /*.jsp controller 将jsp的请求转发给controller(负载均衡控制器)

修改DoucmentRoot 与tomcat的目录一致。

本文修改为:/usr/local/tomcat/webapps/

Options Indexes FollowSymLinks

AllowOverride none

Order allow,deny

Allow from all

即开放/usr/local/tomcat/webapps的权限,让允许所有人访问,我忽视了这个细节问题,浪费了二个下午,大家请注意这点,这步一定记得要做噢,tomcat1做到这步时,其实已经完成了apache+tomcat的整合,如果排障时可测试下直接输入192.168.19.199/test/print.jsp能不能直接运行jsp程度

二、调度器JK的配置

建立JK配置文件:

#vi /usr/local/tomcat/conf/jk/workers.properties

workers.java_home=/usr/local/jdk #指定jdk的目录

ps=/

worker.list=controller #指定负载名,这个可以随便起,与下面的worker.controller.type=lb要对应

#========tomcat1======== 第一台tomcat的配置

worker.tomcat1.port=8009

worker.tomcat1.host=localhost #这里也可以写IP

worker.tomcat1.type=ajp13

worker.tomcat1.lbfactor=1 #权量数值越大,分配的机率就最小

#========tomcat2===========

worker.tomcat2.port=8009

worker.tomcat2.host=192.168.19.81 (tomcat2的IP)

worker.tomcat2.type=ajp13

worker.tomcat2.lbfactor=1

#========controller,负载均衡器=======

worker.controller.type=lb

worker.controller.balance_workers=tomcat1,tomcat2 # server.xml配置文件里的jvmRoute="tomcat1"指定的名字

worker.controller.sticky_session=1

注意事项:mcastAddr="224.0.0.1" 这主广播地址因此需要开启网卡组播功能

route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0分别在各机器上运行,为了让服务器每次启动均生效,建议写入/etc/rc.d/rc.local

三、测试tomcat的负载均衡

tomcat1:在webapps 下新建test 目录

目录下建WEB-INF目录,再建web.xml文件

xmlns:xsi="bcf07c8fcc22bcd126ff0c1f/2001/XMLSchema-instance"

xsi:schemaLocation="bcf07c8fcc22bcd126ff0c1f/xml/ns/j2ee bcf07c8fcc22bcd126ff0c1f/xml/ns/j2ee/web-app_2_4.xsd"

version="2.4">

TomcatDemo

再在webapps 下建立print.jsp test.jsp

Print.jsp :

hello!IP[192.168.19.199]The time is <%= new java.util.Date() %>

tomcat2上操作一样,为了看负载均衡效果,记得将IP改为192.168.19.81,这样测试时就是二个不同的主机,至于目录和文件为什么要这样设置,不懂的同学可参考我的另一篇文章Tomcat基本配置详细说明(以tomcat5.5为例)

测试tomcat1和tomcat2上的tomcat时,用

192.168.19.199:8080/test/print.jsp&192.168.19.81:8080/test/ print.jsp,如果能正常显示猫猫,说明tomcat正常

最终测试,输入192.168.19.199/test/print.jsp时输入二次,应该显示二个不同的jps主页,这说明tomcat的负载均衡成功!

PS:这仅仅是实验环境的一个tomcat负载均衡的实验,没做过压力测试,仅供大家学习参考,大家要做生产环境时还要考虑很多因素,慎。

本文来源:https://www.bwwdw.com/article/lhwq.html

Top