网站服务器是tomcat,最近由于网站访问量在某一时间段会很大,为了避免tomcat的压力过大,也为了避免由于单个的tomcat宕机而造成的访问量丢失的情况出现,就准备安装多个tomcat以实现集群和负载均衡。
在网上找了很多方法,但多不太好,根据几个讲解,自己完成了这个功能,现在总结一下,和大家分享。
首先介绍一下所需的软件
apache_2.2.11-win32-x86-no_ssl.msi
apache-tomcat-6.0.18.tar
先安装apache,安装过程没什么特别的,不再细说。
安装完之后,打开apache安装目录下的conf/httpd.conf文件,具体修改如下:
#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
#Include conf/extra/httpd-vhosts.conf
找到这些内容,将其注释取消。
在文件的最后加入
ProxyRequests Off
<proxy balancer://sy>
BalancerMember ajp://127.0.0.1:8009 loadfactor=1 route=jvm1
BalancerMember ajp://127.0.0.1:9009 loadfactor=1 route=jvm2
</proxy>
修改conf/extra/httpd-vhost.conf文件
在其最后加入
<VirtualHost *:80>
ServerAdmin jiessiedyh@gmail.com
ServerName localhost
ServerAlias localhost
ProxyPass / balancer://sy/ stickysession=jsessionid nofailover=On
ProxyPassReverse / balancer://sy/
ErrorLog "logs/sy-error.log"
CustomLog "logs/sy-access.log" common
</VirtualHost>
解压tomcat,解压两个即可。修改conf/server.xml文件
具体修改如下:
一个<Server port="9005" shutdown="SHUTDOWN">
<Connector port="9080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Connector port="9009" protocol="AJP/1.3" redirectPort="8443" />
另一个不变
仔细对比下面的内容,和原来的tomcat不一样:
<!-- You should set jvmRoute to support load-balancing via AJP ie :
<Engine name="Catalina" defaultHost="localhost">
-->
<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm2">
另一个改为
<!-- You should set jvmRoute to support load-balancing via AJP ie :
<Engine name="Catalina" defaultHost="localhost">
-->
<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
如果是小型的集群,只需将下面的注释去掉即可:
<!--
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
-->
如果是大型的,得加入下面的内容:
其中
<!--
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
-->
注释不取消
<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="4011"
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;"/>
<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.ClusterSessionListener"/>
</Cluster>
好了,到此,基本配置完成,下面来测试一下。
在webapps下建立目录test,在目录中建立WEB-INF,里面的web.xml具体配置如下:
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<display-name>Welcome to Tomcat</display-name>
<distributable/>
</web-app>
红色为重点内容
建立index.jsp文件
内容如下:
<%@ page contentType="text/html; charset=GBK" %>
<%@ page import="java.util.*" %>
<html><head><title>Cluster App Test</title></head>
<body>
Server Info:
<%
out.println(request.getLocalAddr() + " : " + request.getLocalPort()+"<br>");%>
<%
out.println("<br> ID " + session.getId()+"<br>");
// 如果有新的 Session 属性设置
String dataName = request.getParameter("dataName");
if (dataName != null && dataName.length() > 0) {
String dataValue = request.getParameter("dataValue");
session.setAttribute(dataName, dataValue);
}
out.print("<b>Session 列表</b>");
Enumeration e = session.getAttributeNames();
while (e.hasMoreElements()) {
String name = (String)e.nextElement();
String value = session.getAttribute(name).toString();
out.println( name + " = " + value+"<br>");
System.out.println( name + " = " + value);
}
%>
<form action="index.jsp">
名称:<input type=text size=20 name="dataName">
<br>
值:<input type=text size=20 name="dataValue">
<br>
<input type=submit>
</form>
</body>
</html>
现在访问http://127.0.0.1/test/index.jsp
看tomcat的打印时候是交替打印的。
分享到:
相关推荐
SVN1.4.6 + apache2.2.11 + tomcat 6.0.18 集成配置SVN1.4.6 + apache2.2.11 + tomcat 6.0.18 集成配置
apache2.2.11和tomcat6整合配置例子打包下载,开发宝典...... apache2.2.11和tomcat6整合配置 1,下载mod_jk.so 2,在apache的httpd.conf里面加入下面的话 LoadModule jk_module modules/mod_jk.so JkWorkersFile "D:\...
相关配置文件 博文链接:https://morning-sunshine-2008.iteye.com/blog/433412
【Apache+Tomcat 集群与负载均衡及Session绑定】是将多个Apache和Tomcat服务器配置成一个集群,以实现更高的服务可扩展性和可用性。集群的基本思想是通过将工作负载分散到多个服务器,避免单点故障,提高系统的整体...
2. 配置mod_proxy:添加或修改Apache的VirtualHost配置,指定后端Tomcat服务器的地址和端口,以及负载均衡策略。 3. 启动多个Tomcat实例:解压"apache-tomcat-6.0.18.zip",更改每个实例的端口和其它配置(如server....
在本文中,我们将深入探讨Apache 2.2.11在Windows平台上的安装、配置、使用以及其主要特性。 1. **安装Apache 2.2.11 on Windows** - 下载:首先,你需要从官方或可靠的源下载`apache_2.2.11.zip`文件,解压缩到...
在httpd-2.2.11文件中,用户可以找到安装和配置Apache所需的所有文件,包括源代码、文档、示例配置等。安装过程通常包括编译源代码、配置服务器选项、安装二进制文件以及启动和管理服务器等步骤。 总的来说,Apache...
apache 2.2.11配置文件中英文对照
Apache服务器以其开源、免费、可高度定制和扩展性而受到赞誉,使得开发者可以轻松地根据需求调整配置和添加模块。 OpenSSL 0.9.8i则是一个安全套接层(SSL)和传输层安全(TLS)库,用于实现加密通信和身份认证。在...
5. **配置集群模式**:在`E:\jboss-4.2.3.GA\server\default\deploy\jboss-web-cluster.sar\META-INF\jboss-service.xml`文件中设置`CacheMode`属性为`REPL_ASYNC`或`REPL_SYNC`,分别表示异步复制模式和同步复制...
这种Apache与Tomcat的集成配置,对于处理高并发请求和实现负载均衡是非常重要的,同时也有利于提高系统的稳定性和可扩展性。通过JK模块,你可以轻松地管理多个Tomcat实例,实现故障转移和资源优化,这对于大型Web...
本文档详细介绍了如何在 Windows 系统上安装配置并整合 Apache Tomcat 6.0.20 和 Apache 2.2.11。这种整合可以有效地提升 Web 应用程序的性能和服务质量,同时也能让 Web 开发者更加灵活地管理应用程序。以下是整个...
这篇文章将详细介绍如何在您的系统上构建和配置 Apache_2.2.11 与 Trac 的环境。 首先,我们需要了解 Apache 2.2.11 版本。这是 Apache HTTP Server 的一个稳定版本,发布于2009年,包含了多项性能优化和安全修复。...
apache2.2.11最新版,win32版本,20个字很难凑啊
在IT领域,PHP环境搭建是开发Web应用的基础工作,它涉及到服务器软件(如Apache)与PHP解释器的配置。本文将详细阐述如何在Windows操作系统上搭建一个基于Apache2.2.11和PHP5.2.9-1的PHP运行环境。 首先,我们需要...
开发微信小程序涉及到前端和后端技术的结合,包括使用WXML(微信小程序标记语言)和WXSS(微信小程序样式语言)来构建界面,同时可能需要与服务器进行数据交互,这就需要一个能够运行后端服务的环境,如Apache ...
XP搭建Apache+Tomcat+JSP+PHP+MYSQL环境教程 由于附件大小限制,没有添加JDK。 如果需要安装教程或者有问题交流反馈,请到...3、apache-tomcat-6.0.18.zip 4、mysql-5.5.15-win32.msi 5、php-5.4.35-Win32-VC9-x86
Apache的安装与配置 打开apache官方网站 http://archive.apache.org/dist/httpd/binaries/win32/ 或者镜像网站 http://apache.mirror.phpchina.com/httpd/binaries/win32/,下载里面的apache_2.2.11-win32-x86-no_...