Apache反向代理和tomcat集群实现负载均衡和session同步复制

A p a c h e反向代理和t o m c a t集群实现负载均

衡和s e s s i o n同步复制

---------------------------------------------------------配置者安渊璟索引目录

前言 (1)

一、软件环境 (2)

二、Apache的安装 (3)

三、Tomcat的安装 (3)

四、测试以及调试 (7)

前言

整个服务的搭建,我是在Linux的环境下,不是Windows。Windows的配置以及检测会简单很多,所以在下面的介绍中

都是关于Linux的。其实,无论是在那个环境下,思路基本

都是一样的,只要理解就会简单很多。当然我先前的发了一

个比较这个详细的大家可以看下,以下都是精简。

软件环境

Linux版本:Red Hat Enterprise Linux Server release 5.3

服务版本ip 软件安装环境

Apache 代理

服务httpd-2.2.6.tar.bz2 192.168.1.

12

rpm -qa|grep httpd

卸载之前系统自带

Tomcat1 解析

服务apache-tomcat-6.0.13

.tar.gz

192.168.1.

13

jdk-6u6-linux-i586.bi

n,tomcat运行环境

Tomcat2 解析

服务apache-tomcat-6.0.13

.tar.gz

192.168.1.

14

jdk-6u6-linux-i586.bi

n,tomcat运行环境

Apache的安装

# cd /usr/local

# tar -zvxf httpd-2.2.6.tar.gz

# cd httpd-2.2.6

# mkdir -p /usr/local/apache2

# ./configure --prefix=/usr/local/apache2 --enable-modules=so --enable-mods-shared=all --enable-proxy --enable-proxy-connect --enable-proxy-http --enable-proxy-ajp --enable-proxy-balancer --enable-proxy-balancer --enable-status

#make

#make install

# /usr/local/apache2/bin/apacheect1 start

访问http://192.168.1.12出现,It works 说明成功了Tomcat的安装

1)首先安装tomcat运行的环境jdk(必须)

#cd /usr/local

#chmod +x jdk-6u6-linux-i586.bin

#ls

#mv jdk1.6.0_06 jdk

2)设置环境变量

#vim /etc/profile

在最后添加

export JA V A_HOME=/usr/local/jdk

export CLASSPATH=/usr/local/jdk/lib:/usr/local/jdk/jre/lib export PATH=$PATH:$JA V A_HOME/bin:$JA V A_HOME/jre/bin export JRE=/usr/local/jdk/jre

#source /etc/profile

#echo $JA V A_HOME

如果得出上面设置的路径即:/usr/local/jdk说明环境配置正确

#java -version

3)正式安装tomcat(这个只需要解压即可,简单)

#cd /usr/local

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

#mv apache-tomcat-6.0.13 tomcat

#/usr/local/tomcat/bin/startup.sh

在本虚拟机的浏览器输入http://localhost:8080出现一只坏猫对着你傻笑,就说明tomcat解析成功了。第二台机器的方法同上。什么都不需要改动,要改动的在下面。

三、整体环境的整合以及配置

①首先配置tomcat1(也就是第一台tomcat机器)的主配置文件server.xml

#cd /usr/local/tomcat/conf

#ls

#cp server.xml server.xml.bak

#vim server.xml

把默认的 改成

Ps:当然另一台虚拟机,也就是我的192.168.1.14写成tomcat2

去掉下面这句话前面和后面的注释(去掉前面的就行了)

当然这个是最简单开启集群的办法,如果需要更加详细的配置,可以到官网复制。

②在修改web.xml文件,添加distributable节点,session 复制支持。

#cd /usr/local/tomcat/webapps/ROOT/WEB-INF

#ls

#vim web.xml

然后在的前面添加 的节点

两台tomcat服务器都重启一下,要确保两台tomcat都能出现那只对着你傻笑的坏猫,这个是前提,也是排除错误的基本。

③修改httpd.conf即apache的主配置文件,当然你要到第一台机器上去修改。

#cd /usr/loca/apache2/conf/

#cp httpd.conf httpd.conf.bak

#vim httpd.conf

在文件的末尾添加如下代码,开启apache反向代理功能

SetHandler server-status

Order Deny,Allow

Deny from all

Allow from all

#用来负载监控

SetHandler balancer-manager

Order Deny,Allow

Deny from all

Allow from all

ProxyRequests Off

ProxyPass /test balancer://tomcatcluster/ stickysession=jsessionid nofailover=On

BalancerMember ajp://192.168.1.13:8009 route=tomcat1 loadfactor=1 BalancerMember ajp://192.168.1.14:8009 route=tomcat2 loadfactor=1

配置好后,重新启动Apahce服务器

四、测试以及调试

1.访问http://192.168.1.12/balancer-manager,显示负载均衡有关信息,如下

当然更加详细的信息,我在我的博客上已经写好了,如果你遇到解决不了的问题请查看博客上的信息,看能否对你有所帮助哦。

安渊璟的新浪博客https://www.360docs.net/doc/6d3295026.html,/alloflove520

2.访问http://192.168.1.12/test试一试,如果出现下面tomcat默认解析的页面说明成功了一半。

3.测试session同步复制

分别在两个tomcat的服务器上新建testCluster.jsp测试文件,当然也可以用自己的应用程序。

#cd /usr/local/tomcat/webapps/ROOT

#vim testCluster.jsp

代码如下:

<%@ page contentType="text/html; charset=GBK" %>

<%@ page import="java.util.*" %>

Cluster Test

<%

//HttpSession session = request.getSession(true);

System.out.println(session.getId());

out.println("
SESSION ID:" + session.getId()+"
");

// 如果有新的请求,则添加session属性

String name = request.getParameter("name");

if (name != null && name.length() > 0) {

String value = request.getParameter("value");

session.setAttribute(name, value);

}

out.print("Session List:");

Enumeration names = session.getAttributeNames();

while (names.hasMoreElements()) {

String sname = names.nextElement();

String value = session.getAttribute(sname).toString();

out.println( sname + " = " + value+"
");

System.out.println( sname + " = " + value);

}

%>

名称:


值:


到第一台虚拟机,也就是装有apache的虚拟机,访问监控

1)访问http://192.168.1.12/test/testCluster.jsp

然后就刷新吧,再次访问监控

看到两台的tomcat服务器都参与了解析

最后一样有解析文件的大小

说明两台负载均衡成功

2)接下来测试session同步复制

下图看出,目前解析是tomcat2节点在负责解析,提交session 名称和值信息,然后提交

会得到如下页面

在tomcat1上出现了刚提交的session的名称和值信息。同步成功。

相关主题
相关文档
最新文档