Chinaunix首页 | 论坛 | 博客
  • 博客访问: 94764
  • 博文数量: 42
  • 博客积分: 2510
  • 博客等级: 少校
  • 技术积分: 480
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-16 13:39
文章分类

全部博文(42)

文章存档

2011年(1)

2010年(6)

2009年(35)

我的朋友

分类: LINUX

2010-02-09 10:23:48

apache+tomcat整合集群负载均衡
环境:redhat 4-2.6.9-89.ELsmp
      httpd-2.2.6.tar.gz
      jakarta-tomcat-connectors-1.2.15-src.tar.tar
      apache-tomcat-5.5.23.tar.gz
      jdk-6u5-linux-i586.bin
说明:本服务器IP为192.168.2.117,以上所有包都安装在该服务器上
步骤
一、安装apache
httpd-2.2.6.tar.gz上传到/usr/local目录
[root@rh4-tomcat local]# tar -zxvf httpd-2.2.6.tar.gz
[root@rh4-tomcat local]# cd httpd-2.2.6
[root@rh4-tomcat httpd-2.2.6]#./configure --prefix=/usr/local/apache2 --enable-modules=most --enable-mods-shared=all --enable-so
[root@rh4-tomcat httpd-2.2.6]#make
[root@rh4-tomcat httpd-2.2.6]#make install
启动测试
[root@rh4-tomcat httpd-2.2.6]# cd /usr/local/apache2/bin/
[root@rh4-tomcat bin]# ./apachectl start
[root@rh4-tomcat bin]# ps -ef|grep httpd
root     10762     1  0 21:03 ?        00:00:00 /usr/local/apache2/bin/httpd -k start
nobody   10763 10762  0 21:03 ?        00:00:00 /usr/local/apache2/bin/httpd -k start
nobody   10764 10762  0 21:03 ?        00:00:00 /usr/local/apache2/bin/httpd -k start
nobody   10765 10762  0 21:03 ?        00:00:00 /usr/local/apache2/bin/httpd -k start
nobody   10766 10762  0 21:03 ?        00:00:00 /usr/local/apache2/bin/httpd -k start
nobody   10767 10762  0 21:03 ?        00:00:00 /usr/local/apache2/bin/httpd -k start
nobody   10770 10762  0 21:03 ?        00:00:00 /usr/local/apache2/bin/httpd -k start
使用即可以访问到It works字样,则说明安装正确

二、安装jk-connect
该软件包已经提前上传到/usr/local/目录下
[root@rh4-tomcat local]# tar zxvf jakarta-tomcat-connectors-1.2.15-src.tar.tar
[root@rh4-tomcat local]# cd jakarta-tomcat-connectors-1.2.15-src
[root@rh4-tomcat jakarta-tomcat-connectors-1.2.15-src]# cd jk/native/
[root@rh4-tomcat native]# ./buildconf.sh
[root@rh4-tomcat native]# ./configure --with-apxs=/usr/local/apache2/bin/apxs
[root@rh4-tomcat native]# make
[root@rh4-tomcat native]# make install
[root@rh4-tomcat native]# cd apache-2.0/
[root@rh4-tomcat apache-2.0]# cp mod_jk.so /usr/local/apache2/modules/
在拷贝前可以先备份modules目录下本身就存在的mod_jk.so文件,改名为mod_jk.so-bak
三、修改httpd.conf文件
在102行的下面添加如下一行
LoadModule jk_module modules/mod_jk.so
如下:
...........
...........
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule jk_module modules/mod_jk.so
在最底部添加如下行
JkWorkersFile /usr/local/apache2/conf/workers.properties
JkMountFile /usr/local/apache2/conf/uriworkermap.properties
JkLogFile /usr/local/apache2/logs/mod_jk.log
Jkmount /servlet/* ajp13
Jkmount /*.jsp ajp13
JkLogLevel info
将115,116行内容进行修改
User daemon
Group daemon
改成
User nobody
Group nobody
四、创建并配置workers.properties和uriworkermap.properties两个文件
[root@rh4-tomcat conf]# pwd
/usr/local/apache2/conf
[root@rh4-tomcat conf]# more workers.properties
worker.list=tomcat1,tomcat2,loadbalancer
worker.tomcat1.port=8180
worker.tomcat1.host=192.168.2.117
worker.tomcat1.type=ajp13
worker.tomcat1.lbfactor=1
 
worker.tomcat2.port=8280
worker.tomcat2.host=192.168.2.117
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor=1
 
worker.loadbalancer.type=lb
worker.loadbalancer.balanced_workers=tomcat1,tomcat2
worker.loadbalancer.sticky_session=0
[root@rh4-tomcat conf]# more uriworkermap.properties
/*=tomcat1
!/*.jpg=tomcat1
!/*.gif=tomcat1
!/*.png=tomcat1
!/*.bmp=tomcat1
!/*.html=tomcat1
!/*.swf=tomcat1
!/*.css=tomcat1
!/*.js=tomcat1
#!/*.jsp=tomcat1
!/*.jsp=loadbalancer
五、安装JDK
该软件包提前已经上传到/tomcatsoft
[root@rh4-tomcat tomcatsoft]# chmod +x jdk-6u5-linux-i586.bin
[root@rh4-tomcat tomcatsoft]# ./jdk-6u5-linux-i586.bin
安装需要一小段过程,中途会需要选择一个YES
六、配置/etc/profile文件
在对下面添加如下内容
JAVA_HOME=/usr/local/jdk1.6.0_05
CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib:$JAVA_HOME/bin
export JAVA_HOME CLASSPATH
 
#tianyu-tomcat
CATALINA_BASE=/tomcatsoft/tomcat1
CATALINA_HOME=/tomcatsoft/tomcat1
TOMCAT_HOME=/tomcatsoft/tomcat1
PATH=$PATH:$TOMCAT_HOME/bin
export CATALINA_BASE CATALINA_HOME TOMCAT_HOME PATH
 
 
#jiajia-tomcat
CATALINA_2_BASE=/usr/tomcat2
#CATALINA_2_HOME=/usr/tomcat2
TOMCAT_2_HOME=/usr/tomcat2
PATH=$PATH:$TOMCAT_2_HOME/bin
export CATALINA_2_BASE TOMCAT_2_HOME PATH
[root@rh4-tomcat tomcatsoft]# source /etc/profile
查看版本说明已经安装成功
[root@rh4-tomcat tomcatsoft]# java -version
java version "1.6.0_05"
gcj (GCC) 3.4.6 20060404 (Red Hat 3.4.6-11)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

五、安装第一个tomcat
该软件包提前已经上传到/tomcatsoft目录下
[root@rh4-tomcat tomcatsoft]# tar -zxvf apache-tomcat-5.5.23.tar.gz
[root@rh4-tomcat tomcatsoft]# mv apache-tomcat-5.5.23 tomcat1
六、修改第一个tomcat的配置文件
[root@rh4-tomcat conf]# pwd
/tomcatsoft/tomcat1/conf
[root@rh4-tomcat conf]# vi server.xml    注意修改前将其先copy备份一下
13行
       ---默认端口为8005
77行
 102行
   
298行下添加一个mcastBindAddress
                 className="org.apache.catalina.cluster.mcast.McastService"
                  mcastBindAddress="192.168.2.117"
307行修改如下
               tcpListenAddress="192.168.2.117"  --默认为auto
                       
[root@rh4-tomcat bin]# more startup.sh
# resolve links - $0 may be a softlink
添加如下内容
export JAVA_HOME=/usr/local/jdk1.6.0_05
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=$JAVA_HOME/lib
#export CATALINA_HOME=$CATALINA_HOME
export CATALINA_BASE=$CATALINA_BASE

[root@rh4-tomcat bin]# more shutdown.sh
# resolve links - $0 may be a softlink
添加如下内容
export JAVA_HOME=/usr/local/jdk1.6.0_05
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=$JAVA_HOME/lib
#export CATALINA_HOME=$CATALINA_HOME
export CATALINA_BASE=$CATALINA_BASE
[root@rh4-tomcat bin]# ./startup.sh
Using CATALINA_BASE:   /tomcatsoft/tomcat1
Using CATALINA_HOME:   /tomcatsoft/tomcat1
Using CATALINA_TMPDIR: /tomcatsoft/tomcat1/temp
Using JRE_HOME:       /usr/local/jdk1.6.0_05
[root@rh4-tomcat bin]# ps -ef|grep tomcat
root     11112     1 30 22:25 pts/4    00:00:01 /usr/local/jdk1.6.0_05/bin/java -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=/tomcatsoft/tomcat1/conf/logging.properties -Djava.endorsed.dirs=/tomcatsoft/tomcat1/common/endorsed -classpath :/tomcatsoft/tomcat1/bin/bootstrap.jar:/tomcatsoft/tomcat1/bin/commons-logging-api.jar -Dcatalina.base=/tomcatsoft/tomcat1 -Dcatalina.home=/tomcatsoft/tomcat1 -Djava.io.tmpdir=/tomcatsoft/tomcat1/temp org.apache.catalina.startup.Bootstrap start
root     11154 10950  0 22:25 pts/4    00:00:00 grep tomcat
[root@rh4-tomcat bin]# ./shutdown.sh
Using CATALINA_BASE:   /tomcatsoft/tomcat1
Using CATALINA_HOME:   /tomcatsoft/tomcat1
Using CATALINA_TMPDIR: /tomcatsoft/tomcat1/temp
Using JRE_HOME:       /usr/local/jdk1.6.0_05
[root@rh4-tomcat bin]# ps -ef|grep tomcat
root     11182 10950  0 22:28 pts/4    00:00:00 grep tomcat
七、安装第二个tomcat
该软件包已经提前上传到/usr/目录
[root@rh4-tomcat usr]# tar -zxvf apache-tomcat-5.5.23.tar.gz
[root@rh4-tomcat usr]# mv apache-tomcat-5.5.23 tomcat2
八、修改第二个tomcat的配置文件
[root@rh4-tomcat conf]# pwd
/tomcatsoft/tomcat1/conf
[root@rh4-tomcat conf]# vi server.xml    注意修改前将其先copy备份一下
13行
       ---默认端口为8005,可以不变,只要不和tomcat1冲突即可
77行
 102行
   
298行下添加一个mcastBindAddress
                 className="org.apache.catalina.cluster.mcast.McastService"
                  mcastBindAddress="192.168.2.117"
307,308行修改如下
               tcpListenAddress="192.168.2.117"  --默认为auto
               tcpListenPort="4002"              --默认为4001
 
[root@rh4-tomcat bin]# more startup.sh
# resolve links - $0 may be a softlink
添加如下内容
export JAVA_HOME=/usr/local/jdk1.6.0_05
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=$JAVA_HOME/lib
#export CATALINA_HOME=$CATALINA_2_HOME
export CATALINA_BASE=$CATALINA_2_BASE

[root@rh4-tomcat bin]# more shutdown.sh
# resolve links - $0 may be a softlink
添加如下内容
export JAVA_HOME=/usr/local/jdk1.6.0_05
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=$JAVA_HOME/lib
#export CATALINA_HOME=$CATALINA_2_HOME
export CATALINA_BASE=$CATALINA_2_BASE
[root@rh4-tomcat bin]# ./startup.sh
Using CATALINA_BASE:   /usr/tomcat2
Using CATALINA_HOME:   /tomcatsoft/tomcat1
Using CATALINA_TMPDIR: /usr/tomcat2/temp
Using JRE_HOME:       /usr/local/jdk1.6.0_05
[root@rh4-tomcat bin]# ps -ef|grep tomcat
root     11227     1 13 22:50 pts/4    00:00:01 /usr/local/jdk1.6.0_05/bin/java -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=/tomcatsoft/tomcat1/conf/logging.properties -Djava.endorsed.dirs=/tomcatsoft/tomcat1/common/endorsed -classpath :/tomcatsoft/tomcat1/bin/bootstrap.jar:/tomcatsoft/tomcat1/bin/commons-logging-api.jar -Dcatalina.base=/tomcatsoft/tomcat1 -Dcatalina.home=/tomcatsoft/tomcat1 -Djava.io.tmpdir=/tomcatsoft/tomcat1/temp org.apache.catalina.startup.Bootstrap start
root     11278     1 30 22:50 pts/4    00:00:01 /usr/local/jdk1.6.0_05/bin/java -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=/usr/tomcat2/conf/logging.properties -Djava.endorsed.dirs=/tomcatsoft/tomcat1/common/endorsed -classpath :/tomcatsoft/tomcat1/bin/bootstrap.jar:/tomcatsoft/tomcat1/bin/commons-logging-api.jar -Dcatalina.base=/usr/tomcat2 -Dcatalina.home=/tomcatsoft/tomcat1 -Djava.io.tmpdir=/usr/tomcat2/temp org.apache.catalina.startup.Bootstrap start
root     11320 10950  0 22:50 pts/4    00:00:00 grep tomcat
九、在tomcat1中创建index.jsp文件进行测试
[root@rh4-tomcat webapps]# pwd
/tomcatsoft/tomcat1/webapps
[root@rh4-tomcat webapps]# mkdir test
[root@rh4-tomcat test]# more index.jsp
< contentType="text/html;charset=GBK"%>
< import="java.util.*"%>

 
  tomcat1 test


this is tomcat1

<%out.println(request.getLocalAddr()+":"+request.getLocalPort()+"
");%>
<%out.println("
ID"+session.getId()+"
");%>
<%
 String dataName=request.getParameter("dataName");
 if(dataName!=null&&dataName.length()>0)
{
  String dataValue=request.getParameter("dataValue");
  session.setAttribute(dataName,dataValue);
}
out.print("Session:");
Enumeration e=session.getAttributeNames();
while(e.hasMoreElements())
{
  String name=(String)e.nextElement();
  String value=session.getAttribute(name).toString();
  out.println(name+"="+value);
}
%>

name:

value:





[root@rh4-tomcat test]# mkdir WEB-INI/
[root@rh4-tomcat test]# cd WEB-INI/
[root@rh4-tomcat WEB-INI]# more web.xml
    xmlns:xsi=""
    xsi:schemaLocation="  ">
            TomcatDemo
           
   
十、在tomcat2中创建index.jsp文件进行测试
[root@rh4-tomcat webapps]# pwd
/usr/tomcat2/webapps
[root@rh4-tomcat webapps]# mkdir test
[root@rh4-tomcat test]# more index.jsp
< contentType="text/html;charset=GBK"%>
< import="java.util.*"%>

 
  tomcat2 test


this is tomcat2

<%out.println(request.getLocalAddr()+":"+request.getLocalPort()+"
");%>
<%out.println("
ID"+session.getId()+"
");%>
<%
 String dataName=request.getParameter("dataName");
 if(dataName!=null&&dataName.length()>0)
{
  String dataValue=request.getParameter("dataValue");
  session.setAttribute(dataName,dataValue);
}
out.print("Session:");
Enumeration e=session.getAttributeNames();
while(e.hasMoreElements())
{
  String name=(String)e.nextElement();
  String value=session.getAttribute(name).toString();
  out.println(name+"="+value);
}
%>

name:

value:





[root@rh4-tomcat test]# mkdir WEB-INI/
[root@rh4-tomcat test]# cd WEB-INI/
[root@rh4-tomcat WEB-INI]# more web.xml
    xmlns:xsi=""
    xsi:schemaLocation="  ">
            TomcatDemo
           
   
十一、测试
见图1,当在name输入xxy,value输入123456,点提交查询内容后,马上会出现图2的情况
图1

图2
 
若此时再刷新一下,则访问到的又是tomcat1,再刷新,访问到的又回到tomcat2,依次类推,说明tomcat1和tomcat2之间已经实现负载均衡
阅读(909) | 评论(0) | 转发(0) |
0

上一篇:rman的备份与恢复

下一篇:Linux Ghost

给主人留下些什么吧!~~