Apache与Tomat集群
来源:互联网 发布:php冒泡排序算法 编辑:程序博客网 时间:2024/06/01 13:54
这篇文章主要参考《tomcat权威指南》相关章节,我只是进行里安装实验,前端使用apache作为负载均衡服务器,后端使用tomcat作为web服务器。
1.架构图如下:
2.系统软件:
(1) 操作系统:CentOS5.1
(2) 前端负载均衡:Apache HTTTP server2.x
(3)Web容器:apache-tomcat-6.0.16
(4)JDK:jdk1.6
3. Apache服务器安装:
#./configure--prefix=/usr/local/apache --enable-modules=so
--enable-mods-shared=all--enable-proxy --enable-proxy-connect --enable-proxy-ftp --enable-proxy-http--enable-proxy-ajp --enable-proxy-balancer --enable-rewrite
注释:激活tomcat集群需要的 enable-proxy,enable-proxy-http,enable-proxy-connect,enable-proxy-ajp和enable-proxy-balancer,其中proxy-ajp和proxy-balancer必须依赖proxy,如果是自定义的编译除了以上几个必须的模块外,mod_status也要编译进去,切记。enable-proxy-ftp可以不编译。
#make;makeinstall
制作Apache启动项:
#cpsupport/apachectl /etc/rc.d/init.d/httpd
#vi/etc/rc.d/init.d/httpd
添加以下内容:(包括#号)
#Startup script for the Apache Web Server
#chkconfig: 2345 85 15
#description: Apache is a World Wide Web server .It is used to server
# HTMLfiles and CGI.
#processname: httpd
#pidfile: /usr/local/apache/log/httpd.pid
#config: /usr/local/apache/conf/httpd.conf
增加服务项
#chkconfig--add httpd
#chmod755 /etc/rc.d/init.d/httpd
#chkconfig--level 345 httpd on
4.安装JDK:
#chmoda+x jdk-6u4-linux-i586-rpm.bin
#./jdk-6u4-linux-i586-rpm.bin
JAVA环境变量设置:
#vi/etc/profile
在文件最后添加以下内容:
JAVA_HOME=/usr/java/jdk1.6.0_04
CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
PATH=$JAVA_HOME/bin:$PATH
CATALINA_HOME=/usr/local/tomcat
exportJAVA_HOME CLASSPATH PATH CATALINA_HOME
执行如下命令使环境变量生效:
source/etc/profile
测试配置是否成功:
java–version
5.安装tomat#tarzxvf apache-tomcat-6.0.16.tar.gz
#mvapache-tomcat-6.0.16 /usr/local/tomcat
Tomcat随机启动:
#vi /etc/rc.local
添加以下内容:
/usr/local/tomcat/bin/startup.sh
tomcat6配置文件server.xml:
把
<!--You should set jvmRoute to support load-balancing via AJP ie :
<Enginename="Standalone" defaultHost="localhost"jvmRoute="jvm1">
-->
<Enginename="Catalina" defaultHost="localhost">
改成
<!-- You should set jvmRoute to supportload-balancing via AJP ie :
-->
<Enginename="Standalone" defaultHost="localhost"jvmRoute="tomcatX">
<!--
<Enginename="Catalina" defaultHost="localhost">
-->
说明:
第一台tomcat就把jvmRoute="tomcat1"
第二台tomcat就把jvmRoute="tomcat2"
把
<!--
<ClusterclassName="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
-->
去掉注释变为
<ClusterclassName="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
<ClusterclassName="org.apache.catalina.ha.tcp.SimpleTcpCluster"
channelSendOptions="8">
<ManagerclassName="org.apache.catalina.ha.session.DeltaManager"
expireSessionsOnShutdown="false"
notifyListenersOnReplication="true"/>
<ChannelclassName="org.apache.catalina.tribes.group.GroupChannel">
<MembershipclassName="org.apache.catalina.tribes.membership.McastService"
address="228.0.0.4"
port="45564"
frequency="500"
dropTime="3000"/>
<ReceiverclassName="org.apache.catalina.tribes.transport.nio.NioReceiver"
address="auto"
port="4000"
autoBind="100"
selectorTimeout="5000"
maxThreads="6"/>
<SenderclassName="org.apache.catalina.tribes.transport.ReplicationTransmitter">
<TransportclassName="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
</Sender>
<InterceptorclassName="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
<InterceptorclassName="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
</Channel>
<ValveclassName="org.apache.catalina.ha.tcp.ReplicationValve"
filter=""/>
<ValveclassName="org.apache.catalina.ha.session.JvmRouteBinderValve"/>
<DeployerclassName="org.apache.catalina.ha.deploy.FarmWarDeployer"
tempDir="/tmp/war-temp/"
deployDir="/tmp/war-deploy/"
watchDir="/tmp/war-listen/"
watchEnabled="false"/>
<ClusterListenerclassName="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/>
<ClusterListenerclassName="org.apache.catalina.ha.session.ClusterSessionListener"/>
</Cluster>
配置应用的web.xml:
在每个webapps应用中,修改配置文件web.xml文件 添加元素<distributable/>
在web.xml文件中<web-app>元素下增加以下内容:
<!--此应用将与群集服务器复制Session-->
<distributable/>
具体修改如下:
修改前:
<?xmlversion="1.0" encoding="ISO-8859-1"?>
<web-appxmlns="[url]http://java.sun.com/xml/ns/javaee[/url]"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee[url]http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd[/url]"
version="2.5">
</web-app>
修改后:
<?xmlversion="1.0" encoding="ISO-8859-1"?>
<web-appxmlns="[url]http://java.sun.com/xml/ns/javaee[/url]"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee[url]http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd[/url]"
version="2.5">
<!--此应用将与群集服务器复制Session-->
<distributable/>
</web-app>
配置apache的ajp负载均衡功能:
确保将以下Module的注释去掉
LoadModuleproxy_module modules/mod_proxy.so
LoadModuleproxy_connect_module modules/mod_proxy_connect.so
LoadModuleproxy_ftp_module modules/mod_proxy_ftp.so
LoadModuleproxy_http_module modules/mod_proxy_http.so
LoadModuleproxy_ajp_module modules/mod_proxy_ajp.so
LoadModuleproxy_balancer_module modules/mod_proxy_balancer.so
LoadModulestatus_module modules/mod_status.so
增加以下内容:
#Proxypass Config
Includeconf/extra/httpd-modproxy.conf
建立文件httpd-modproxy.conf输入内容:
<Location/server-status>
SetHandlerserver-status
OrderDeny,Allow
Denyfrom all
Allowfrom all
</Location>
<Location/balancer-manager>
SetHandlerbalancer-manager
OrderDeny,Allow
Denyfrom all
Allowfrom all
</Location>
ProxyRequestsOff
ProxyPass/ balancer://tomcatcluster stickysession=jsessionid nofailover=On
<Proxybalancer://tomcatcluster>
BalancerMember[url]http://192.168.232.5:8080[/url] loadfactor=1
BalancerMember[url]http://192.168.232.6:8080[/url] loadfactor=2
</Proxy>
注释:
ProxyRequestsOff 表示启用反向代理,必须开启;
ProxyPass为代理转发的Url,即将所有访问/的请求转发到群集balancer://tomcatcluster,这里为/即将所有访问/的请求转发到群集balancer://tomcatcluster的/test目录;
BalancerMember为群集的成员,即群集服务器1或2,负载均衡服务器会根据均衡规则来将请求转发给BalancerMember;- Apache与Tomat集群
- apache tomat安装
- apache与tomcat集群
- apache与tomcat集群
- 【集群】Apache与Tomcat集群配置
- Apache与jboss集群配置
- Apache与Tomcat 集群配置
- Apache与Tomcat集群配置
- Apache与Tomcat搭建集群
- Apache与Tomcat集群配置
- Apache与Tomcat集群配置
- Apache与Tomcat集群配置
- Apache httpd与tomcat集群
- Tomat集群Cluster的配置,SimpleTcpCluster节点含义
- https-ssl-nginx-apache-httpd-tomat申请ssl证书小结
- 关于Apache与 Tomcat的集群配置
- 实现Apache负载均衡与Tomcat集群
- Apache HttpServer与Tomcat7集群Linux版
- U3D打箱子游戏
- eclipse与myeclipse恢复已删除的文件和代码
- MySql递归查询函数
- 如何在Android平台上使用IO分析工具(blktrace)
- 总有一款适合你 --- 开发实用在线小工具
- Apache与Tomat集群
- 关于BLOG的开始
- Candy
- How To Use Git Source Control with Xcode in iOS 7
- Qt中文帮助文档,非常之方便
- HDU 1871 无题 贪心排序
- 小米2a刷机miui 6简记——rom刷机原理简析
- Hibernate中No row with the given identifier exists问题的原因及解决
- Oracle 查看一个表对应的主键和外键的约束关系,查看的语句: