说明:一台apache主机,两台tomcat主机
安装JDK、安装Apache、安装Tomcat、配置Apache代理、配置Tomcat集群
一、安装JDK(所有运行Tomcat主机,即web服务器)
1.下载JDK的bin包,如jdk-1_5_0_02-linux-i586.rpm.bin ,给其添加执行权限,执行#./jdk-1_5_0_02-linux-i586.rpm.bin , 在
当前目录生成rpm安装包,同样给其添加执行权限。 再执行 #rpm -ivh jdk-1_5_0_02-linux-i586.rpm 出现安装协议 按<Enter>接受
即可。
2.设置环境变量 #vi /etc/profile 在其最后加入
JAVA_HOME =/ usr / java / jdk1. 5 .0_02
CLASSPATH = .:$JAVA_HOME / lib:$JAVA_HOME / jre / lib
PATH = $PATH:$JAVA_HOME / bin:$JAVA_HOME / jre / bin
export JAVA_HOME CLASSPATH PATH
保存退出
3.要使JDK在所有的用户中使用,可以这样:vi /etc/profile.d/java.sh在新的java.sh中输入以下内容:
#set java environment
JAVA_HOME=/usr/java/jdk1.5.0_02
CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
export JAVA_HOME CLASSPATH PATH
保存退出,然后给java.sh分配权限:chmod 755 /etc/profile.d/java.sh
二、安装Apache(访问代理主机)
1.下载apache源代码 http://archive.apache.org/dist/httpd/httpd-2.2.2.tar.gz
解压缩 tar fvxz httpd-2.2.2.tar.gz
2.进入解压后的目录。进行配置:
. / configure -- prefix =/ usr / apache -- enable - module = most -- enable - proxy -- enable - proxy - ajp -- enable - forward -- enable - proxy - connect -- enable - proxy - http -- enable - so -- enable - deflate -- enable - headers -- enable - include
上面的配置,用到了其他一些模块,说不定以后会用到,如支持ssi的include模块。
3.编译(编译如果不成功,确认一下你的linux是否安装有编译所需要的c环境和其他需要的类库)
make
4.安装 make install
5.进入/usr/apache目录,运行apache ./apachectl -k start
运行apache后,浏览一下是否运行正常。
关闭apache ./apachectl -k stop
6.把apache作为linux的启动就运行服务程序
执行如下操作:cp /usr/apache/bin/apachectl /etc/rc.d/init.d/httpd
确认linux以前安装的httpd(apache)不需要了,你可覆盖掉以前apache的httpd文件。
chkconfig --add httpd
运行linux的setup,把httpd服务默认设定为自动运行。
到现在,你就可用另一种方式来启动、关闭apache了。如service httpd start
三、安装tomcat(Web服务器)
1.下载jakarta-tomcat-5.5.20.tar.gz
tar zxf jakarta-tomcat-5.5.20.tar.gz 解压文件 (如解压到/usr/local/)
2.设置环境变量 #vi /etc/profile 添加
CATALINA_HOME=/usr/local/jakarta-tomcat-5.5.30
export CATALINA_HOME
保存退出
3.修改JVM内存:/bin/catalina.sh 文件
在下# ----- Execute The Requested Command -----------------
# Bugzilla 37848: only output this if we have a TTY
if [ $have_tty -eq 1 ]; then
echo "Using CATALINA_BASE: $CATALINA_BASE"
echo "Using CATALINA_HOME: $CATALINA_HOME"
echo "Using CATALINA_TMPDIR: $CATALINA_TMPDIR"
if [ "$1" = "debug" -o "$1" = "javac" ] ; then
echo "Using JAVA_HOME: $JAVA_HOME"
else
echo "Using JRE_HOME: $JRE_HOME"
fi
fi
添加以下内容:
CATALINA_OPTS = " $CATALINA_OPTS -Xms256m -Xmx512m -XX:PermSize=32m -XX:MaxPermSize=128m $JPDA_OPTS "
JAVA_OPTS = " $JAVA_OPTS -Djava.awt.headless=true "
echo " Using CATALINA_OPTS: $CATALINA_OPTS "
echo " Using JAVA_OPTS: $JAVA_OPTS "
4.运行/usr/local/jakarta-tomcat-5.5.30/bin/startup.sh 启动tomcat服务器 测试是否正常
四、配置apache代理(适用mod_proxy_ajp.so)
编辑apache配置文件 #vi /usr/apache/conf/httpd.conf
1.配置proxy_ajp
#加载解析模块(windows下,或linux采用动态加载模式下需配置。前面我们的linux编译时把下面的模块嵌入到了apache中
,所以不用再加载)
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
2.配置文件添加
ProxyPass / balancer: // tomcatcluster/ lbmethod=byrequests stickysession=JSESSIONID nofailover=on timeout=5 maxattempts = 3
ProxyPassReverse / balancer: // tomcatcluster/
< Proxy balancer: // tomcatcluster >
BalancerMember ajp: // 192.168.40.15:8009 smax=2 loadfactor=1 route=tomca t1
BalancerMember ajp: // 192.168.71.106:8009 smax=2 loadfactor=2 route=tomc at2
</ Proxy >
以上说明请参见mod_proxy中文手册 http://www.6bee.com/tech/ApacheMenu/mod/mod_proxy.html
3.其他说明
1、apache对tomcat的支持历史:apache第2.1版本后,内置了proxy_ajp,而jk2已经没人开发了,jk则支持到apache的
2.0.58版本。
proxy_ajp配置较简单,但可配置性还不如jk2,主要表现在proxy_ajp目前只支持配置到目录,还不支持对文件名称的pattern模式匹
配(即还不能定义到只对jsp文件起作用)。
2、因为proxy_ajp的配置,还不支持对文件名称的pattern模式匹配,所以你要特别注意:
——尽量把jsp和静态文件和图片路径分不同的目录来管理;
——对于静态文件和图片路径,如/images,你可用“ProxyPass /images !”来禁止ProxyPass,从而来让apache来直接处理图片的请
求。
——关于apache的ssi(即shtml,include)与tomcat的集成时,shtml文件不能处于ProxyPass的控制下(即不能在ProxyPass目录)
,而shtml调用的jsp须在ProxyPass有效控制下;
五、配置Tomcat负载均衡、集群
1.修改tomcat 的 conf/server.xml 的<Engine>
去掉注释<Engine name="Standalone" defaultHost="localhost" jvmRoute="tomcat1">
jvmRoute是tomcat路由标示,由此区分两台tomcat主机,那么第二台就改为
<Engine name="Standalone" defaultHost="localhost" jvmRoute="tomcat2">
加上注释<Engine name="Catalina" defaultHost="localhost">
2.修改tomcat 的 conf/server.xml 的<Connector>
去掉注释<Connector port="8009"
enableLookups="false" redirectPort="8443" debug="0"
protocol="AJP/1.3" />
3.修改tomcat 的 conf/server.xml 的<Cluster>
<!--
< Cluster className = " org.apache.catalina.cluster.tcp.SimpleTcpCluster "
managerClassName = " org.apache.catalina.cluster.session.DeltaManager "
expireSessionsOnShutdown = " false "
useDirtyFlag = " true "
notifyListenersOnReplication = " true " >
< Membership
className = " org.apache.catalina.cluster.mcast.McastService "
mcastAddr = " 228.0.0.4 "
mcastPort = " 45564 "
mcastFrequency = " 500 "
mcastDropTime = " 3000 " />
< Receiver
className = " org.apache.catalina.cluster.tcp.ReplicationListener "
tcpListenAddress = " auto "
tcpListenPort = " 4001 "
tcpSelectorTimeout = " 100 "
tcpThreadCount = " 6 " />
< Sender
className = " org.apache.catalina.cluster.tcp.ReplicationTransmitter "
replicationMode = " pooled "
ackTimeout = " 5000 " />
< Valve className = " org.apache.catalina.cluster.tcp.ReplicationValve "
filter = " .*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt; " />
< Deployer className = " org.apache.catalina.cluster.deploy.FarmWarDeployer "
tempDir = " /tmp/war-temp/ "
deployDir = " /tmp/war-deploy/ "
watchDir = " /tmp/war-listen/ "
watchEnabled = " false " />
< ClusterListener className = " org.apache.catalina.cluster.session.ClusterSessionListener " />
</ Cluster >
-->
把上面的注释拿掉 就ok 了!
4.在每个webapps应用中,修改web.xml文件 添加元素<distributable/>
最后完工,重启tomcat,apahce测试平衡负载,新建jsp页面
<%
Runtime lRuntime = Runtime.getRuntime();
out.println("*** BEGIN MEMORY STATISTICS ***<br/>");
out.println("Free Memory: "+lRuntime.freeMemory()/1024/1024+"M<br/>");
out.println("Max Memory: "+lRuntime.maxMemory()/1024/1024+"M<br/>");
out.println("Total Memory: "+lRuntime.totalMemory()/1024/1024+"M<br/>");
out.println("Available Processors : "+lRuntime.availableProcessors()+"<br/>");
out.println("*** END MEMORY STATISTICS ***");
%>
<br>
<%= request.getSession().getId() %>
放入到两台tomcat的ROOT目录中测试
再测试集群(session复制)
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/zym820910/archive/2009/08/26/4487016.aspx
安装JDK、安装Apache、安装Tomcat、配置Apache代理、配置Tomcat集群
一、安装JDK(所有运行Tomcat主机,即web服务器)
1.下载JDK的bin包,如jdk-1_5_0_02-linux-i586.rpm.bin ,给其添加执行权限,执行#./jdk-1_5_0_02-linux-i586.rpm.bin , 在
当前目录生成rpm安装包,同样给其添加执行权限。 再执行 #rpm -ivh jdk-1_5_0_02-linux-i586.rpm 出现安装协议 按<Enter>接受
即可。
2.设置环境变量 #vi /etc/profile 在其最后加入
JAVA_HOME =/ usr / java / jdk1. 5 .0_02
CLASSPATH = .:$JAVA_HOME / lib:$JAVA_HOME / jre / lib
PATH = $PATH:$JAVA_HOME / bin:$JAVA_HOME / jre / bin
export JAVA_HOME CLASSPATH PATH
保存退出
3.要使JDK在所有的用户中使用,可以这样:vi /etc/profile.d/java.sh在新的java.sh中输入以下内容:
#set java environment
JAVA_HOME=/usr/java/jdk1.5.0_02
CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
export JAVA_HOME CLASSPATH PATH
保存退出,然后给java.sh分配权限:chmod 755 /etc/profile.d/java.sh
二、安装Apache(访问代理主机)
1.下载apache源代码 http://archive.apache.org/dist/httpd/httpd-2.2.2.tar.gz
解压缩 tar fvxz httpd-2.2.2.tar.gz
2.进入解压后的目录。进行配置:
. / configure -- prefix =/ usr / apache -- enable - module = most -- enable - proxy -- enable - proxy - ajp -- enable - forward -- enable - proxy - connect -- enable - proxy - http -- enable - so -- enable - deflate -- enable - headers -- enable - include
上面的配置,用到了其他一些模块,说不定以后会用到,如支持ssi的include模块。
3.编译(编译如果不成功,确认一下你的linux是否安装有编译所需要的c环境和其他需要的类库)
make
4.安装 make install
5.进入/usr/apache目录,运行apache ./apachectl -k start
运行apache后,浏览一下是否运行正常。
关闭apache ./apachectl -k stop
6.把apache作为linux的启动就运行服务程序
执行如下操作:cp /usr/apache/bin/apachectl /etc/rc.d/init.d/httpd
确认linux以前安装的httpd(apache)不需要了,你可覆盖掉以前apache的httpd文件。
chkconfig --add httpd
运行linux的setup,把httpd服务默认设定为自动运行。
到现在,你就可用另一种方式来启动、关闭apache了。如service httpd start
三、安装tomcat(Web服务器)
1.下载jakarta-tomcat-5.5.20.tar.gz
tar zxf jakarta-tomcat-5.5.20.tar.gz 解压文件 (如解压到/usr/local/)
2.设置环境变量 #vi /etc/profile 添加
CATALINA_HOME=/usr/local/jakarta-tomcat-5.5.30
export CATALINA_HOME
保存退出
3.修改JVM内存:/bin/catalina.sh 文件
在下# ----- Execute The Requested Command -----------------
# Bugzilla 37848: only output this if we have a TTY
if [ $have_tty -eq 1 ]; then
echo "Using CATALINA_BASE: $CATALINA_BASE"
echo "Using CATALINA_HOME: $CATALINA_HOME"
echo "Using CATALINA_TMPDIR: $CATALINA_TMPDIR"
if [ "$1" = "debug" -o "$1" = "javac" ] ; then
echo "Using JAVA_HOME: $JAVA_HOME"
else
echo "Using JRE_HOME: $JRE_HOME"
fi
fi
添加以下内容:
CATALINA_OPTS = " $CATALINA_OPTS -Xms256m -Xmx512m -XX:PermSize=32m -XX:MaxPermSize=128m $JPDA_OPTS "
JAVA_OPTS = " $JAVA_OPTS -Djava.awt.headless=true "
echo " Using CATALINA_OPTS: $CATALINA_OPTS "
echo " Using JAVA_OPTS: $JAVA_OPTS "
4.运行/usr/local/jakarta-tomcat-5.5.30/bin/startup.sh 启动tomcat服务器 测试是否正常
四、配置apache代理(适用mod_proxy_ajp.so)
编辑apache配置文件 #vi /usr/apache/conf/httpd.conf
1.配置proxy_ajp
#加载解析模块(windows下,或linux采用动态加载模式下需配置。前面我们的linux编译时把下面的模块嵌入到了apache中
,所以不用再加载)
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
2.配置文件添加
ProxyPass / balancer: // tomcatcluster/ lbmethod=byrequests stickysession=JSESSIONID nofailover=on timeout=5 maxattempts = 3
ProxyPassReverse / balancer: // tomcatcluster/
< Proxy balancer: // tomcatcluster >
BalancerMember ajp: // 192.168.40.15:8009 smax=2 loadfactor=1 route=tomca t1
BalancerMember ajp: // 192.168.71.106:8009 smax=2 loadfactor=2 route=tomc at2
</ Proxy >
以上说明请参见mod_proxy中文手册 http://www.6bee.com/tech/ApacheMenu/mod/mod_proxy.html
3.其他说明
1、apache对tomcat的支持历史:apache第2.1版本后,内置了proxy_ajp,而jk2已经没人开发了,jk则支持到apache的
2.0.58版本。
proxy_ajp配置较简单,但可配置性还不如jk2,主要表现在proxy_ajp目前只支持配置到目录,还不支持对文件名称的pattern模式匹
配(即还不能定义到只对jsp文件起作用)。
2、因为proxy_ajp的配置,还不支持对文件名称的pattern模式匹配,所以你要特别注意:
——尽量把jsp和静态文件和图片路径分不同的目录来管理;
——对于静态文件和图片路径,如/images,你可用“ProxyPass /images !”来禁止ProxyPass,从而来让apache来直接处理图片的请
求。
——关于apache的ssi(即shtml,include)与tomcat的集成时,shtml文件不能处于ProxyPass的控制下(即不能在ProxyPass目录)
,而shtml调用的jsp须在ProxyPass有效控制下;
五、配置Tomcat负载均衡、集群
1.修改tomcat 的 conf/server.xml 的<Engine>
去掉注释<Engine name="Standalone" defaultHost="localhost" jvmRoute="tomcat1">
jvmRoute是tomcat路由标示,由此区分两台tomcat主机,那么第二台就改为
<Engine name="Standalone" defaultHost="localhost" jvmRoute="tomcat2">
加上注释<Engine name="Catalina" defaultHost="localhost">
2.修改tomcat 的 conf/server.xml 的<Connector>
去掉注释<Connector port="8009"
enableLookups="false" redirectPort="8443" debug="0"
protocol="AJP/1.3" />
3.修改tomcat 的 conf/server.xml 的<Cluster>
<!--
< Cluster className = " org.apache.catalina.cluster.tcp.SimpleTcpCluster "
managerClassName = " org.apache.catalina.cluster.session.DeltaManager "
expireSessionsOnShutdown = " false "
useDirtyFlag = " true "
notifyListenersOnReplication = " true " >
< Membership
className = " org.apache.catalina.cluster.mcast.McastService "
mcastAddr = " 228.0.0.4 "
mcastPort = " 45564 "
mcastFrequency = " 500 "
mcastDropTime = " 3000 " />
< Receiver
className = " org.apache.catalina.cluster.tcp.ReplicationListener "
tcpListenAddress = " auto "
tcpListenPort = " 4001 "
tcpSelectorTimeout = " 100 "
tcpThreadCount = " 6 " />
< Sender
className = " org.apache.catalina.cluster.tcp.ReplicationTransmitter "
replicationMode = " pooled "
ackTimeout = " 5000 " />
< Valve className = " org.apache.catalina.cluster.tcp.ReplicationValve "
filter = " .*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt; " />
< Deployer className = " org.apache.catalina.cluster.deploy.FarmWarDeployer "
tempDir = " /tmp/war-temp/ "
deployDir = " /tmp/war-deploy/ "
watchDir = " /tmp/war-listen/ "
watchEnabled = " false " />
< ClusterListener className = " org.apache.catalina.cluster.session.ClusterSessionListener " />
</ Cluster >
-->
把上面的注释拿掉 就ok 了!
4.在每个webapps应用中,修改web.xml文件 添加元素<distributable/>
最后完工,重启tomcat,apahce测试平衡负载,新建jsp页面
<%
Runtime lRuntime = Runtime.getRuntime();
out.println("*** BEGIN MEMORY STATISTICS ***<br/>");
out.println("Free Memory: "+lRuntime.freeMemory()/1024/1024+"M<br/>");
out.println("Max Memory: "+lRuntime.maxMemory()/1024/1024+"M<br/>");
out.println("Total Memory: "+lRuntime.totalMemory()/1024/1024+"M<br/>");
out.println("Available Processors : "+lRuntime.availableProcessors()+"<br/>");
out.println("*** END MEMORY STATISTICS ***");
%>
<br>
<%= request.getSession().getId() %>
放入到两台tomcat的ROOT目录中测试
再测试集群(session复制)
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/zym820910/archive/2009/08/26/4487016.aspx
发表评论
-
hermes 监听hornetq JMS配置
2013-02-22 15:46 2017hermes 监听配置步奏 ... -
Proxool连接池之参数设置详解
2012-11-28 15:07 1150今天把我做的WEB工程用压力测试工具测试测试了一下,WEB ... -
Myeclipse注册码生成代码
2012-08-28 12:04 903package com.able.test; import ... -
portal启动参数配置
2011-12-29 11:39 1024-Xms768m -Xmn256m -Xmx1024m -Xs ... -
Java软件的安装与更新
2010-08-04 16:30 1027使用Java web start 和 JNLP技术部署应用 -
PowerDesign高级应用
2009-12-22 17:29 1418PowerDesign高级应用 1、去掉Oracle ... -
web应用中的Session机制
2009-11-30 21:31 1211目录: 一、术语session ... -
Apache Commons工具集
2009-11-19 16:42 803Apache Commons包含了很多开源的工具,用于解决平时 ... -
JTA事物管理
2009-11-17 09:20 1840Spring+iBatis+Atomikos实现JTA事务 ... -
powerdesigner12.5 入门教程
2009-10-26 13:11 11060powerdesigner12.5 入门教程 下载po ... -
冒泡排序、选择排序、插入排序、反数组排序、快速排序
2009-09-17 14:16 1966import java.util.Random; /* ... -
php开源网址介绍
2009-09-17 12:37 4385[综合门户]PHPChina 开源社区门户 PHPChina ... -
入库算法
2009-09-16 19:47 1106String[] aa = {"1",&q ... -
什么是Drools?
2009-03-31 11:04 1820(译者增加:什么是Drools, 摘自drools.org) ... -
如何在SSH框架中防止重复提交?
2008-10-26 20:23 1572如何在已有的SSH框架中,构建一个非侵入式防重复提交方案? 开 ...
相关推荐
Apache+Tomcat+JK是一个常见的Web服务器和应用服务器集群解决方案,用于实现负载均衡和高可用性。这个配置中,Apache作为前端反向代理服务器,Tomcat作为后端的应用服务器,而JK模块是Apache与Tomcat之间的连接器,...
Apache+Tomcat+Linux集群和均衡负载(Session同步复制
Apache+Tomcat+JK 实现集群负载均衡是一种常见的Web服务器和应用服务器的部署方式,它能够提高系统的可用性和响应速度,实现服务的高并发处理。本文将详细介绍如何配置这一环境。 首先,我们需要准备以下软件: 1. ...
- 通过浏览器访问`http://172.16.116.1/index.jsp`,检查是否能够成功访问,并观察日志文件确认请求是否被正确地分发至Tomcat集群中的不同节点。 #### 四、注意事项 1. **权限问题**: 确保所有操作均以具有足够...
### Apache+Tomcat+MySQL 的负载平衡和集群技术 在当今互联网时代,随着用户数量的激增和技术需求的多样化,如何高效地管理服务器资源、确保系统稳定性和响应速度成为了一个重要课题。Apache、Tomcat 和 MySQL 的...
本文将详细介绍如何在一机双Tomcat环境下搭建Apache+Tomcat集群,并深入解析其中的关键配置和技术细节。 #### 二、Apache+Tomcat集群的优势 1. **高可靠性(HA)**:通过集群管理软件实现在主服务器发生故障时,备份...
apache+tomcat集群负载平衡的配置详细讲解
完成配置后,应通过访问Apache服务器,测试请求能否正确地被转发到Tomcat集群中的某个实例,并得到响应。这一步骤对于确保集群和负载均衡策略的正确性至关重要。 通过上述详细步骤和配置要点,我们可以构建出一个...
反向代理负载均衡 Apache + Tomcat集群 多的我也不多说了 看文档
本文将详细介绍如何配置 Apache + Tomcat 集群,包括安装 Apache 和 Tomcat 服务器、配置 mod_jk 模块、配置 Apache 和 Tomcat 服务器、配置负载均衡控制器等。 一、安装 Apache 服务器 首先,需要安装 Apache ...
通过集成Apache和Tomcat,可以构建一个高效且可扩展的Web服务器集群,实现负载均衡和session复制功能。 集群技术的主要目标是提高系统的可用性和性能,通过将工作负载分散到多个服务器上,避免单点故障,并提高处理...
4. **配置mod_jk**:在Apache的配置文件httpd.conf中,添加mod_jk的LoadModule语句,然后创建一个名为workers.properties的文件,定义Tomcat集群的服务器实例。每个实例包括IP地址、端口、工作目录等信息。 5. **...
在“apache+tomcat+jk集群”这一主题中,我们将深入探讨如何通过Apache、Tomcat以及JK模块的结合,实现负载均衡和集群配置,从而提升系统的性能和稳定性。 ### Apache的角色 Apache是一款广泛使用的开源Web服务器...
在提供的文件"Apache2+Tomcat6+JK集群负载均衡.docx"中,可能包含了更详细的步骤、配置示例和最佳实践。文件可能涵盖了如何配置mod_jk的worker.properties文件,以及如何在Apache的httpd-vhosts.conf文件中定义虚拟...
【Apache+Tomcat 集群与负载均衡及Session...通过以上配置,Apache+Tomcat集群可以实现高效的负载均衡和高可用性,同时通过Session绑定确保用户会话的连续性。注意定期监控和优化集群性能,以应对不断变化的业务需求。
4. **本地配置Apache + Tomcat集群** - **环境说明**:在这个例子中,我们有一个Apache服务器和两个Tomcat实例,以及mod_jk模块用于两者之间的通信。 - **安装与配置**: - 安装Apache和Tomcat,确保版本匹配。 ...
jk+apce+tomcat 整合 实现tomcat负载均衡 tomcat集群。让tomcat处理.jsp动态页面,apache处理静态页面。平且实现在一个IP下提供多个站点服务。 里面包括怎样配置apache虚拟机文件 怎样配置tomcat的虚拟机文件 花了我...