Apache 1.3.26+ Tomcat 4.0.3 负载均衡的实现 by Eddie

王朝system·作者佚名  2008-05-18
窄屏简体版  字體: |||超大  

1 说明

======

本配置实现的是多台机器访问的负载均衡。它使用Apache来实现动态负载均衡,并且实现了会话绑定机制,即用户第一次访问的会话将绑定在

首次访问的tomcat上,防止会话信息丢失。

该配置所运行的环境为RedHat linux7.2,实现两台机器的负载均衡,一台机器运行apache和tomcat,另外一台机器运行tomcat.该配置稍做修

改就可以配置在其他操作系统并能实现一台服务器跑多个tomcat的负载均衡,以及多于两台服务器的负载均衡。

2 需要的软件

============

Apache 1.3.26 source

http://www.apache.org/dist/httpd/apache_1.3.26.tar.gz

Precompiled Tomcat 4.0.3

http://jakarta.apache.org/builds ... tomcat-4.0.3.tar.gz

The JK module, precompiled for Linux Glibc 2.2

http://jakarta.apache.org/builds ... inux/i386/mod_jk.so

3 编译、安装和配置Apache

3.1 解包

tar fvxz apache_1.3.23.tar.gz

3.2 编译和安装

cd apache_1.3.26

./configure --enable-module=include --enable-module=so --prefix=/usr/local/apache

make install

3.3 拷贝mod_jk模块文件

拷贝文件 mod_jk.so 到路径 /usr/local/apache/libexec

3.4 在httpd.conf中配置JK 模块

编辑Apache的配置文件,该文件位于:/usr/local/apache/conf

3.4.1 加入mod_jk模块

在文件中找到"# LoadModule foo_module libexec/mod_foo.so"一行,在该行下面加入如下:

#

# Load mod_jk

#

LoadModule jk_module libexec/mod_jk.so

#

# Configure mod_jk

#

JkWorkersFile conf/workers.properties

JkLogFile logs/mod_jk.log

JkLogLevel info

3.4.2 设置tomcat 应用的访问代理

在 "DocumentRoot" 一行的下面加入:

JkMount /*.jsp loadbalancer

JkMount /servlet/* loadbalancer

JkMount /application/* loadbalancer

以上第三行为要访问的应用名。如广州电信邮件系统的应用名为enterprise,则application应该替换。

3.4.3 生成 workers.properties 文件

在 /usr/local/apache/conf目录下生成该文件,该文件告诉apache 每个负载均衡的tomcat服务的运行参数,如机器名和端口号等。

#

# workers.properties

#

# In Unix, we use forward slashes:

ps=/

# list the workers by name

worker.list=tomcat1, tomcat2, loadbalancer

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

# First tomcat server

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

worker.tomcat1.port=8009 //第一台tomcat服务所在机器监听端口

worker.tomcat1.host=hostname1 //第一台tomcat服务所在机器ip地址

worker.tomcat1.type=ajp13

# Specify the size of the open connection cache.

#worker.tomcat1.cachesize

#

# Specifies the load balance factor when used with

# a load balancing worker.

# Note:

# ----> lbfactor must be > 0

# ----> Low lbfactor means less work done by the worker.

worker.tomcat1.lbfactor=100

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

# Second tomcat server

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

worker.tomcat2.port=8009 //第二台tomcat服务所在机器监听端口

worker.tomcat2.host=hostname2 //第二台tomcat服务所在机器ip地址

worker.tomcat2.type=ajp13

# Specify the size of the open connection cache.

#worker.tomcat2.cachesize

#

# Specifies the load balance factor when used with

# a load balancing worker.

# Note:

# ----> lbfactor must be > 0

# ----> Low lbfactor means less work done by the worker.

worker.tomcat2.lbfactor=100

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

# Load Balancer worker

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

#

# The loadbalancer (type lb) worker performs weighted round-robin

# load balancing with sticky sessions.

# Note:

# ----> If a worker dies, the load balancer will check its state

# once in a while. Until then all work is redirected to peer

# worker.

worker.loadbalancer.type=lb

worker.loadbalancer.balanced_workers=tomcat1, tomcat2

#

# END workers.properties

#

4 安装和配置Tomcat 服务器

=========================

在运行tomcat的机器上分别安装tomcat软件

tar fvxz jakarta-tomcat-4.0.3.tar.gz

mv jakarta-tomcat-4.0.3 /opt/tomcat

4.1 修改conf/server.xml文件

在跑第一个tomcat实例的机器上,在大约第100行, 替换:

<Engine name="Standalone" defaultHost="localhost" debug="0">

为:

<Engine jvmRoute="tomcat1" name="Standalone" defaultHost="localhost" debug="0">

对跑第二个tomcat实例的机器上,替换为 jvmRoute="tomcat2".

4.2 生成JSP测试网页 (index.jsp)

在跑tomcat1实例的机器的 /opt/tomcat/webapps/ROOT 目录生成如下内容的index.jsp文件:

<html>

<body bgcolor=red>

<center>

<h1>Tomcat 1</h1>

</body>

</html>

同理,在跑tomcat2实例的机器的 /opt/tomcat/webapps/ROOT 目录生成如下内容的index.jsp文件:

<html>

<body bgcolor=blue>

<center>

<h1>Tomcat 2</h1>

</body>

</html>

5 启动Tomcat1, Tomcat2 和Apache服务

=====================================

/opt/tomcat/bin/startup.sh

/opt/tomcat/bin/startup.sh

/usr/local/apache/bin/apachectl start

6 测试安装

===========

首先验证Apache服务器的静态页面是否正常,访问: http://hostname/.

验证tomcat和apache配置提供负载均衡,访问: http://hostname/index.jsp

如果你看到红色的页面,表示为tomcat1 服务器返回的,

如果你看到兰色的页面,表示为tomcat2 服务器返回的。这里注意的是在linux上面的apache轮询一般要返回10次tomcat1的服务后才会返

回tomcat2的服务,并且以后的访问是没有规律的,在window2000环境下则是交替的返回tomcat1和tomcat2 的服务。

现在再测试下会话绑定功能,当你重载以上(刷新页面)访问的index.jsp页面时,确信永远返回同一种颜色,即总是从同一台tomcat机器返回页面。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航