测试环境:2台电脑xp系统
所需软件:
httpd-2.2.22-win32-x86-openssl-0.9.8t.msi (http://httpd.apache.org/)
apache-tomcat-6.0.35.zip (http://tomcat.apache.org/)
花生壳(http://www.oray.com/) (可选,外网测试项目使用)
设计如图:
将
apache-tomcat-6.0.35.zip解压2次,分别得到tomcat_01,tomcat_02.
配置tomcat_01/conf/server.xml:
修改<Engine name="Catalina" defaultHost="localhost"> 为<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">
在该元素标签下面添加如下元素:
<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;"/>
<ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
</Cluster>
配置tomcat_02/conf/server.xml,因为tomcat_02和tomcat_01在同一台电脑上,所以端口不能重复,如果是在不同电脑上的话,就可以不用修改端口:
修改<Server port="8005" shutdown="SHUTDOWN">
为<Server port="8015" shutdown="SHUTDOWN">
修改 <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="utf-8" />
为<Connector port="8888" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="utf-8" />
修改<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
为<Connector port="8019" protocol="AJP/1.3" redirectPort="8443" />
修改<Engine name="Catalina" defaultHost="localhost">
为<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat2">
在Engine元素标签下面也添加如下代码,此时Receiver的端口不能重复:
<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="5002"
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;"/>
<ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
</Cluster>
配置tomcat_03/conf/server.xml,和tomcat_01配置一样,只是在另一台电脑上。
启动3个tomcat,访问3个地址:
http://192.168.0.100:8080/
http://192.168.0.100:8888/
http://192.168.0.102:8080/
出现了tomcat首页,说明启动正常。
安装好 httpd-2.2.22-win32-x86-openssl-0.9.8t.msi
,接下来配置http信息。 conf/httpd.conf:
默认端口是80,可以进行修改Listen 80
1.将下面代码前面的#去掉:
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_connect_module modules/mod_proxy_connect.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_scgi_module modules/mod_proxy_scgi.so
2.找到如下信息,修改为 allow from all:
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
#Deny from all
allow from all
</Directory>
不然访问的时候就会出现 You don't have permission to access / on this server
3.找到如下代码Include conf/extra/httpd-vhosts.conf,去掉前面注释。
4.在文件最后面添加信息如下:
ProxyRequests Off
<proxy balancer://cluster>
BalancerMember ajp://192.168.0.100:8009 loadfactor=1 route=tomcat1
BalancerMember ajp://192.168.0.100:8019 loadfactor=2 route=tomcat2
BalancerMember ajp://192.168.0.102:8009 loadfactor=3 route=tomcat3
</proxy>
这里的端口就是tomcat里面 <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />的端口。
route=tomcat1就是tomcat里面 <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">的名字。
loadfactor值越大表示分配到的可能性越大。
5.修改conf/extra/httpd-vhosts.conf,在文件最后添加如下代码:
<VirtualHost *:80>
ServerAdmin 85309651@qq.com
#ServerName localhost
#ServerAlias localhost
#ServerName 192.168.0.100
#ServerAlias 192.168.0.100
ServerName cjjava.vicp.cc
ServerAlias cjjava.vicp.cc
ProxyPass / balancer://cluster/ stickysession=jsessionid nofailover=On
ProxyPassReverse / balancer://cluster/
</VirtualHost>
如果 ServerName设置为localhost,则只能在本机中测试访问服务 ,即:http://localhost
如果 ServerName设置为局域网ip,则局域网能够通过ip测试访问服务
,即:http://192.168.0.100
如果 ServerName设置为域名,则可以通过域名测试访问服务。
,即:http://cjjava.vicp.cc
这里我通过花生壳进行了外网映射。
启动apache server,访问下面地址:
http://cjjava.vicp.cc/
如果看到tomcat首页,则表示访问成功。
外网访问,这里我是连接的路由器,所以对其端口进行了虚拟服务器列表配置。
下面创建一个web项目对其进行session的复制测试,
将项目打包后分别放入到3个tomcat/wabapps/web-0.0.1.war中。
注意web项目中web.xml中要添加如下信息:<distributable/>
访问下面地址:http://cjjava.vicp.cc/web-0.0.1/
进入index.jsp中。 多刷新几次页面,可以看到tomcat_03输出结果:
tomcat_02输出结果:
这个频率和刚才配置的以下信息有关系,
loadfactor值越大,被分配的可能性越大。
BalancerMember ajp://192.168.0.100:8019 loadfactor=2 route=tomcat2
BalancerMember ajp://192.168.0.102:8009 loadfactor=3 route=tomcat3
以上测试完成:)
- 大小: 13.4 KB
- 大小: 2.1 KB
- 大小: 35.3 KB
- 大小: 14.6 KB
分享到:
相关推荐
Apache + Tomcat 集群配置 Apache + Tomcat 集群配置是指将 Apache 服务器与 Tomcat 服务器集成,以提高服务器的性能和可扩展性。本文将详细介绍如何配置 Apache + Tomcat 集群,包括安装 Apache 和 Tomcat 服务器...
Apache+Tomcat集群配置,Apache+Tomcat集群配置,Apache+Tomcat集群配置
当我们需要处理高并发、负载均衡或提高应用可用性时,单个Tomcat实例可能无法满足需求,这时就需要进行Tomcat集群配置。本资料包包含了“tomcat集群配置”的程序及文档,提供了现成的例子,帮助我们理解和实践Tomcat...
当我们谈论“tomcat集群配置文件”时,我们指的是将多个Tomcat实例组织成一个集群,以提高应用程序的可用性和可伸缩性。在集群环境中,负载均衡、故障转移和资源共享是关键特性。 首先,要配置Tomcat集群,你需要...
**二、Tomcat集群配置步骤** 1. **安装多个Tomcat实例**:首先,你需要在不同的服务器上或同一服务器的不同端口上安装并启动多个Tomcat实例。 2. **配置共享目录**:为确保集群内的节点共享session信息,需要设置...
【标题】:“Tomcat集群配置”是指在多台服务器上部署和管理多个Tomcat实例,以实现负载均衡、高可用性和容错性。这通常涉及将应用部署在多个Tomcat服务器上,通过一个前端负载均衡器(如Apache HTTP Server或Nginx...
Apache+Tomcat集群配置续Apache+Tomcat集群配置续Apache+Tomcat集群配置续Apache+Tomcat集群配置续
nginx + tomcat 集群配置 负载 nginx 下载地址: http://nginx.org/en/download.html 联合tomcat 实现集群 windows: Nginx.conf 配置 //见文件夹下面的nginx.conf 更改tomcat的配置: 第一处端口...
### Apache和Tomcat集群配置详解 #### 一、软件准备 在进行Apache和Tomcat集群配置之前,首先需要准备所需的软件资源。 - **Apache 2.2**: - Windows平台: 从官方网站 [http://httpd.apache.org/download.cgi]...
### Tomcat集群配置详解 #### 1. 配置方案 在描述中提到了三种配置方案: 1. **使用Apache2.2中的mod_ajp集成Tomcat5.5**:这种方案通过Apache的mod_ajp模块,使Apache能够与Tomcat通过AJP协议通信,从而实现请求...
以下是对Apache与Tomcat集群配置的详细解析: 1. **Apache HTTP Server配置**: - Apache通常作为前端代理服务器,接收来自客户端的HTTP请求,并通过AJP协议将这些请求转发给Tomcat实例。 - 在`httpd.conf`配置...
本篇文章将详细探讨如何在Redis+Tomcat集群配置中实现Session共享。 首先,我们需要理解什么是Session。Session是Web应用中用于存储用户状态的一种机制,通常用于保存用户的登录信息、购物车等数据。在单台服务器...
**二、Tomcat集群配置** 1. **安装Tomcat**:下载并安装两个Tomcat实例,分别监听不同的端口(如上述8080和8081)。 2. **复制共享session配置**:由于集群中的各个Tomcat实例需要共享session,所以需要在每个...
以下将详细介绍Nginx与Tomcat集群配置以及Redis配置的相关知识点。 ### Nginx的编译与安装 1. **安装编译环境**:在安装Nginx前,需要确保系统已经安装了必要的编译工具,如GCC、Make等。同时,可能还需要安装pcre...