Apache+tomcat均衡负载配置
简述:
apache均衡负载需要配置Apache,如果tomcat之间需要集群,就还需要tomcat。
apache的配置方式可以有2种,mod_proxy方式和mod_jk方式,均能实现均衡负载,区别是mod_jk使用的是tomcat的ajp Connector,mod_proxy使用的是tomcat的HTTP Connector。(比如访问网址192.168.0.188,由mod_jk分发过去后,地址见到的仍然是192.168.0.188,而由mod_proxy分发之后,地址可能就变成了192.168.0.188:8081,使用ajp方式则不会)。
Tomcat可以不作特别配置,也可以作集群配置,集群后的tomcat可以相互间复制session,多个tomcat之间互相的联系可以在apache的workers.properties中配置。这部分会在本文档apache的mod_jk配置中有示例。
开始配置:
1、 Apache http server(文档:http://httpd.apache.org/docs/2.2/)
mod_proxy方式均衡负载配置配置(apache版本:2.2.17):
1)在APACHE_ROOT/Httpd/httpd.conf中将一下3个模块打开(去掉所在行的注释)
mod_proxy_ajp.so
2)在文件底部加上如下内容:
ProxyRequests Off
Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED
<Proxy balancer://mycluster>
#均衡负载方式
#BalancerMember http://192.168.0.183:8082 route=1
#BalancerMember http://192.168.0.188:8081 route=2
#热备份方式,请求总是流向 node-a ,一旦node-a crash,Apache会检测到错误并把请求分流给node-b。Apache会隔几分钟检测一下node-a的状况,如果node-a恢复,就继续使用node-a。
BalancerMember http://192.168.0.183:8082
BalancerMember http://192.168.0.188:8081 status=+H
ProxySet stickysession=ROUTEID
</Proxy>
ProxyPass / balancer://mycluster/
#测试时把一下内容开启,查看均衡负载情况,浏览地址:http://mycluster/balancer-manager
<Location /balancer-manager>
#SetHandler balancer-manager
#Order Deny,Allow
#Deny from all
#Allow from all
</Location>
Ajp方式:
<VirtualHost *:80>
ServerAdmin lzj@gmail.com
ServerName localhost
ServerAlias localhost
ProxyPass / balancer://cluster/ stickysession=JSESSIONID|jsessionid nofailover=On
ProxyPassReverse / balancer://cluster/
<proxy balancer://cluster>
BalancerMember ajp://192.168.0.188:8007 loadfactor=1 route=s1
BalancerMember ajp://192.168.0.188:8008 loadfactor=1 route=s2
</proxy>
</VirtualHost>
3)均衡负载配置完成
mod_jk方式均衡负载配置配置(apache版本:2.2.9、mod_jk版本:1.2.6):
1) 拷贝mod_jk.so、mod_jk_1.2.6_2.0.50.dll到APACHE_ROOT/ modules/下
2) 在Apache_Root/ conf/下新建文件:workers.properties、uriworkermap.properties、mod_jk.conf,
然后在apache的conf目录下httpd.conf中添加:Include conf/mod_jk.conf
3) workers.properties写入内容:
worker.list = controller,status,tomcat1 #server 列表
worker.tomcat1.port=8010 #ajp13 端口号,在tomcat下server.xml配置,默认8009
worker.tomcat1.host=127.0.0.1 #tomcat的主机地址,如不为本机,请填写ip地址
worker.tomcat1.type=ajp13 #类型ajp13
worker.tomcat1.lbfactor= 1 #server的加权比重,值越高,分得的请求越多
worker.tomcat1.recovery_options=1 #
#worker.tomcat1.recycle_timeout=300 #
worker.tomcat1.redirect=tomcat2 #界定的首选故障节点tomcat1
#worker.tomcat1.reply_timeout=1000
#reply_timeout告诉web server在接到远端的Tomcat已死并实时的切换到集群中的另外一个Tomcat的回应之前等待一段时间
#worker.tomcat1.socket_keepalive=True
#worker.tomcat2.activation=disabled #禁用worker1所有请求的,除故障外
worker.tomcat2.port=8011 #ajp13 端口号,在tomcat下server.xml配置,默认8009
worker.tomcat2.host=127.0.0.1 #tomcat的主机地址,如不为本机,请填写ip地址
worker.tomcat2.type=ajp13 #类型ajp13
worker.tomcat2.lbfactor = 1 #server的加权比重,值越高,分得的请求越多
worker.tomcat2.recovery_options=1
worker.tomcat2.redirect=tomcat1 #界定的首选故障节点tomcat1
#========controller,负载均衡控制器
worker.controller.type=lb #类型均衡
worker.controller.balanced_workers = tomcat1,tomcat2 #指定分担请求的tomcat ,tomcat3
worker.controller.sticky_session=true #设为0均衡才起作用但是session不同步
worker.status.type=status
4) uriworkermap.properties写入内容:
/*=controller
#!/bbs/*=tomcat1
#/tunetstudent/*=tomcat1
#/student/*=tomcat1
#/ejforum/*=controller
/jkstatus=status
#!/*.gif=controller
#!/*.jpg=controller
#!/*.png=controller
#!/*.css=controller
#!/*.js=controller
#!/*.htm=controller
#!/*.html=controller
5) mod_jk.conf写入内容:
#加载mod_jk Module
LoadModule jk_module modules/mod_jk.so
#指定 workers.properties文件路径
JkWorkersFile conf/workers.properties
JkMountFile conf/uriworkermap.properties
JkLogFile logs/mod_jk.log
JkLogLevel warn
#指定那些请求交给tomcat处理,"controller"为在workers.propertise里指定的负载分配控制器
#JkMount /*.jsp controller
#JkMount /*.do controller
6) 均衡负载配置完成
2、 tomcat(文档:http://httpd.apache.org/docs/2.2/)
tomcat 6集群配置(版本:6.0.16)
1) 修改TOMCAT_ROOT/conf/ server.xml文件:可以是把<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>的注释去除,或者是加入以下代码:
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
channelSendOptions="8">
<Manager className="org.apache.catalina.ha.session.DeltaManager"
expireSessionsOnShutdown="false"
notifyListenersOnReplication="true"/>
<Channel className="org.apache.catalina.tribes.group.GroupChannel">
<Membership className="org.apache.catalina.tribes.membership.McastService"
mcastAddr="230.0.0.4"
address="228.0.0.4"
port="45564"
frequency="500"
dropTime="3000"/>
<Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
address="192.168.0.188"(多网卡需要制定ip)
port="4008"(同一台机器多个tomcat,这里端口需要不同)
autoBind="100"
selectorTimeout="5000"
maxThreads="6"/>
<Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
<Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
</Sender>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
</Channel>
<Valve className="org.apache.catalina.ha.tcp.ReplicationValve"
filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.css;.*\.txt;"/>
<ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
</Cluster>
其作用是一样,如果不需要深入配置,只需要把SimpleTcpCluster那行的注释去除就可以。如果使用多个网卡,需要修改Membership 的mcastBindAddress和Receiver 的address,均要制定使用的网卡的IP。
2)修改TOMCAT_ROOT/conf/ server.xml文件,在Engine 处增加jvmRoute ,该名称和apahce workers.properties中的名称相同,<Engine name="Standalone" defaultHost="localhost" jvmRoute="tomcat2">
3)在项目的web.xml最后加上<distributable/>
<distributable/>不加的话,可能session复制会失败
4)tomcat集群配置完成。
相关推荐
Apache+Tomcat+JK是一个常见的Web服务器和应用服务器集群解决方案,用于实现负载均衡和高可用性。这个配置中,Apache作为前端反向代理服务器,Tomcat作为后端的应用服务器,而JK模块是Apache与Tomcat之间的连接器,...
配置Apache+Tomcat7+jk负载均衡的基本步骤如下: 1. 安装Apache HTTP Server和Tomcat7,确保它们都能正常运行。 2. 配置mod_jk模块。这通常包括编译和安装mod_jk,然后在Apache的配置文件(如httpd.conf)中加载该...
配置安装Apache+Apache Tomcat实现tomcat负载均衡教程.doc
本人自己配置的windows平台apache+tomcat负载均衡实现,这个资源中包括apache,tomcat,测试项目+说明文档。只要正确安装apache,即可直接正常运行。本人参考网络,所以给贡献网络。
本篇文章将详细介绍如何使用Apache和Tomcat实现负载均衡。 负载均衡的核心思想是将来自用户的请求分发到多个服务器上,以避免单一服务器过载。在Apache与Tomcat的组合中,Apache通常作为前端负载均衡器,通过HTTP...
Apache+Tomcat的负载均衡配置就是为了解决这一问题。 负载均衡的基本思想是将来自用户的请求分发到多个后端服务器,这样可以避免任何单一服务器过载,同时提高整体服务的可靠性和响应时间。Apache通常通过其模块mod...
Apache+Tomcat+JK 实现集群负载均衡是一种常见的Web服务器和应用服务器的部署方式,它能够提高系统的可用性和响应速度,实现服务的高并发处理。本文将详细介绍如何配置这一环境。 首先,我们需要准备以下软件: 1. ...
Apache+JK+Tomcat搭建负载均衡是一种常见的高可用性和性能优化策略,主要目的是分散网络流量,提高服务的稳定性和响应速度。这个方案特别适合大型网站或应用,可以有效防止单点故障,提升用户体验。 首先,负载均衡...
Apache+Tomcat+JK配置负载均衡是Web服务器与应用服务器集群的一种常见组合,用于实现高可用性和高并发处理能力。Apache作为前端服务器,通过JK模块(mod_jk)与后端的Tomcat应用服务器进行通信,将HTTP请求分发到多...
Apache + Tomcat 配置负载均衡是Web服务器和应用程序服务器协同工作的典型应用场景,旨在提高网站的可用性和性能。在这个配置中,Apache作为前端HTTP服务器,它接收来自客户端的请求并根据预设策略将这些请求分发给...
Apache+Tomcat+Linux集群和均衡负载(Session同步复制
内附完整配置教程和修改后的apache的httpd.conf文件和tomcat的server.xml配置文件,包含test测试项目,不包含apache和tomcat安装文件。 本教程参考网上资料,本机测试成功,如有问题可以私信说明。
### Apache+Tomcat服务器集群配置详细步骤 #### 一、引言 在现代Web开发中,随着业务规模的不断扩大和用户需求的日益增长,单一服务器往往难以满足高性能、高可靠性的要求。为了应对这一挑战,通常采用Apache+...
2. **配置负载均衡器**:在Apache服务器中,需要配置JK2模块,使其能够检测Tomcat实例的状态,并根据负载均衡策略将请求转发到适当的Tomcat实例。 3. **配置Tomcat**:每个Tomcat实例需要配置为集群的一部分,包括...
本文将详细介绍如何配置 Apache + Tomcat 集群,包括安装 Apache 和 Tomcat 服务器、配置 mod_jk 模块、配置 Apache 和 Tomcat 服务器、配置负载均衡控制器等。 一、安装 Apache 服务器 首先,需要安装 Apache ...
jk+apce+tomcat 整合 实现tomcat负载均衡 tomcat集群。让tomcat处理.jsp动态页面,apache处理静态页面。平且实现在一个IP下提供多个站点服务。 里面包括怎样配置apache虚拟机文件 怎样配置tomcat的虚拟机文件 花了我...
apache+tomcat集群负载平衡的配置详细讲解
当面对高并发访问时,为了提升系统性能和可用性,我们可以采用负载均衡策略,其中"worker模式"是Apache mod_proxy模块的一种配置方式,用于实现对后端Tomcat服务器的负载均衡。 Apache的mod_proxy模块允许我们配置...
Apache+Tomcat负载均衡与集群配置是提升Web应用性能和高可用性的重要手段。这篇文章将详细介绍如何使用Apache作为前端负载均衡器,与多台Tomcat服务器配合构建集群环境。 首先,我们要理解负载均衡的基本概念,它是...