系统环境:Windows XP SP3 ,jdk1.6
软件版本:apache_2.2.11-win32-x86-openssl-0.9.8i.msi apache-tomcat-6.0.16
备注:tomcat可以下载压缩包直接解压就可以,另外也下载整合了APR(Apache Tomcat Native library 1.1.16)
Apache和Tomcat的整合个人推荐使用AJP的方式,配置简单,而且现在tomcat官方鼓励采用这种方式呢!
我是在同一台机器上作的测试,因为我完成了apache的负载均衡以及tomcat6的集群和session的复制,所以需要修改到的地方可能比较多,先将配置列出如下:
一、AJP方式的配置:
1、 修改apache的httpd.conf
首先要load所需要的so文件,需要列表如下:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
ProxyPass /images !
ProxyPass /css !
ProxyPass /js !
<Proxy balancer://cluster/>
BalancerMember ajp://localhost:8009/ route=tomcat1 loadfactor=50
BalancerMember ajp://localhost:9009/ route=tomcat2 loadfactor=50
</Proxy>
开启虚拟主机
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
修改httpd-vhosts.conf:
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin winsky_2008@163.com
DocumentRoot "D:\www\webapps"
ServerName localhost
ServerAlias localhost
ErrorLog "logs/localhost-error.log"
CustomLog "logs/localhost-access.log" common
ProxyRequests Off
ProxyPass / balancer://cluster/ stickysession=JSESSIONID nofailover=On
ProxyPassReverse / balancer://cluster/
#ProxyPassReverse /test balancer://cluster/ test
</VirtualHost>
三、修改%TOMCAT_HOME%/conf/server.xml以配置集群(跟使用AJP和JK方式没有关系,皆通用) :
把原来的<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/> 修改为以下配置,注意Receiver中的 port="5001"要保持每个tomcat不一致,
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions="6">
<!--
<Manager className="org.apache.catalina.ha.session.BackupManager"
expireSessionsOnShutdown="false"
notifyListenersOnReplication="true"
mapSendOptions="6"/>
-->
<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"
address="228.0.0.4"
port="45564"
frequency="500"
dropTime="3000"/>
<Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
address="auto"
port="5001"
selectorTimeout="100"
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"/>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor"/>
</Channel>
<Valve className="org.apache.catalina.ha.tcp.ReplicationValve"
filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/>
<!--
<Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>
-->
<Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"
tempDir="/tmp/war-temp/"
deployDir="/tmp/war-deploy/"
watchDir="/tmp/war-listen/"
watchEnabled="false"/>
<!--
<ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/>
-->
<ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
</Cluster>
四、实现session复制(在%TOMCAT_HOME%/conf/server.xml文件中)
第一步:
Tomcat 6.0.16
<Engine name="Standalone" defaultHost="localhost" jvmRoute="tomcat1">
<!--
<Engine name="Catalina" defaultHost="localhost">
-->
Tomcat 6.0.18
<Engine name="Standalone" defaultHost="localhost" jvmRoute="tomcat2">
<!--
<Engine name="Catalina" defaultHost="localhost">
-->
第二步:
Webapps目录下的应用程序的web.xm中必须添加
<distributable/> 此应用将与群集服务器复制Session
因为是在同一台机器上启动多个tomcat,所以修改监听的端口是必不可少的,这里将我的配置列出如下:
首先每个tomcat的<Server port="8006" shutdown="SHUTDOWN">中的port要不一致
Tomcat 6.0.16
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" acceptCount="5000" maxThreads="2000"/>
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
Tomcat 6.0.16
<Connector port="9080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="9443" acceptCount="5000" maxThreads="2000"/>
<Connector port="9009" protocol="AJP/1.3" redirectPort="9443" />
配置完成,先启动所有tomcat服务器,最后启动apache2.2服务器
参考:http://enet-java.iteye.com/blog/339922
分享到:
相关推荐
### Apache+Tomcat服务器集群配置详细步骤 #### 一、引言 在现代Web开发中,随着业务规模的不断扩大和用户需求的日益增长,单一服务器往往难以满足高性能、高可靠性的要求。为了应对这一挑战,通常采用Apache+...
完成上述配置后,Apache将根据workers.properties文件中的设定,将请求分发到不同的Tomcat实例。负载平衡算法(如轮询、权重分配等)可以根据`lbfactor`参数进行调整。`sticky_session`设置为1表示启用会话粘滞,即...
Apache 和 Tomcat 集群配合 Session 复制是一种常见的高可用性和负载均衡解决方案,尤其适用于大型网站和企业级应用。以下将详细解释这个方案的关键点。 **整体方案策略** 1. **部署逻辑图** 部署逻辑通常包括...
- 配置Tomcat:确保Java环境已安装并配置,将MSM相关的jar包放入Tomcat的lib目录,修改Tomcat配置文件(如server.xml)启用AJP协议和MSM。 7. 后续步骤 - 重启Apache和Tomcat服务,确保配置生效。 - 测试集群...
在实际应用中,Apache+Tomcat集群的配置可能更为复杂,需要考虑SSL支持、session复制、故障转移、健康检查等高级特性。此外,随着技术的发展,现代的负载均衡解决方案如Nginx、HAProxy等也可能替代Apache作为反向...
【Apache+Tomcat 集群与负载均衡及Session绑定】是将多个Apache和Tomcat服务器配置成一个集群,以实现更高的服务可扩展性和可用性。集群的基本思想是通过将工作负载分散到多个服务器,避免单点故障,提高系统的整体...
Apache+Tomcat+JK 实现集群负载均衡是一种常见的Web服务器和应用服务器的部署方式,它能够提高系统的可用性和响应速度,实现服务的高并发处理。本文将详细介绍如何配置这一环境。 首先,我们需要准备以下软件: 1. ...
5. **整合Tomcat**:在Apache中配置mod_proxy和mod_proxy_ajp模块,使得Apache能通过AJP协议与Tomcat通信。在httpd.conf中添加代理规则,指定Tomcat服务器的IP和端口。 6. **配置MySQL连接**:在PHP中,通过mysqli...
在构建高性能、高可用性的Web应用系统时,Apache与Tomcat的集群配置是常见的解决方案。Apache作为前端服务器,可以通过负载均衡技术将用户请求分发到多个后端的Tomcat实例上,实现请求的分担,同时通过session同步,...
本文将详细介绍如何在 Ubuntu 操作系统下使用源代码安装并配置 Apache、Tomcat 和 Memcached,实现集群中的 Session 共享与负载均衡。由于采用的是源码安装方式,可能会遇到一些细节上的差异,但总体思路与步骤应...
### Apache+mod_jk+Tomcat负载均衡配置详解 #### 一、背景介绍 随着互联网技术的迅猛发展,单一服务器已经难以满足日益增长的服务需求。负载均衡技术应运而生,成为提高服务可用性和扩展性的关键手段之一。本文将...
总之,Apache + Tomcat负载均衡配置涉及多个组件的设置,包括Apache的模块配置、虚拟主机设置、Tomcat的AJP连接器以及Session管理和文件访问控制。正确配置后,这种架构可以显著提高网站的可靠性、扩展性和用户体验...
3. **配置Tomcat集群**:在Tomcat的server.xml文件中,为每个实例设置一个唯一的`clusterId`,并启用`mod_jk`或`mod_proxy_ajp`模块进行AJP通信。配置示例: ``` <Cluster className="org.apache.catalina.ha....
2. **下载JK模块**:从Apache Tomcat官方网站获取mod_jk的最新版本,将其解压并编译,然后将编译后的模块(`mod_jk.so`)复制到Apache的`modules`目录。 3. **配置Apache**: - 修改Apache的配置文件`httpd.conf`,...