1.tomcat的server.xml
//jvmRoute 指定名字是apache认识的唯一表示 <Engine name="Standalone" defaultHost="localhost" jvmRoute="tomcat2"> <!-- <Engine name="Catalina" defaultHost="localhost"> --> 第二个tomcat: <Engine name="Standalone" defaultHost="localhost" jvmRoute="tomcat1"> jvmRoute的值将在workers.properties中体现
2.下载apache:http://archive.apache.org/dist/httpd/binaries/win32/apache_2.2.4-win32-x86-no_ssl.msi
安装如果启动不起来,点击Test Configuration看看。最有可能起不起来的80端口被占用特别是iis。
3.下载mod_jk-1.2.26-httpd-2.2.4.so :::::其实是mod_jk2.so放到apache的modules下
http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.26/
下载时主义版本2.2.4
4.配置workers.properties:
在 Apache 配置目录 Apache2.2\conf 创建 workers.properties 配置文件,该文件主要用于配置 Apache 与 Tomcat 的集成要用到的 Tomcat 实例和负载均衡分发控制器。
#配置tomcat。。tomcat1,tomcat2就是server.xml中配的jvmRoute worker.list=tomcat2,tomcat1,loadBalancer # ------------------------ # secound tomcat server # ------------------------ #端口号,是Define an AJP 1.3 Connector on port 8009的端口号,如果host相同可换掉8009 worker.tomcat2.port=8009 #服务器ip worker.tomcat2.host=192.168.1.18 worker.tomcat2.type=ajp13 worker.tomcat2.lbfactor=100 # ------------------------ # First tomcat server # ------------------------ worker.tomcat1.port=8009 worker.tomcat1.host=192.168.1.29 worker.tomcat1.type=ajp13 worker.tomcat1.lbfactor=100 # ------------------------ # Load Balancer worker # ------------------------ worker.loadBalancer.type=lb #也要制定tomcat worker.loadBalancer.balanced_workers=tomcat2,tomcat1 # # END workers.properties
worker.tomcat1.lbfactor=100分发权重 值越大负载越大
5.建立mod_jk2.conf文件。。在conf下
# Load mod_jk2 module #指定mod_jk-1.2.26-httpd-2.2.4.so 位置,一下改了下名字。 LoadModule jk_module modules/mod_jk2.so # Where to find workers.properties JkWorkersFile conf/workers.properties # Where to put jk logs JkLogFile logs/mod_jk2.log # Set the jk log level [debug/error/info] JkLogLevel info # Select the log format JkLogStampFormat "[%a %b %d %H:%M:%S %Y]" # JkOptions indicate to send SSL KEY SIZE, JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories # JkRequestLogFormat set the request format JkRequestLogFormat "%w %V %T" # Send JSPs for context / to worker named loadBalancer JkMount /*.jsp loadBalancer # Load mod_jk2 module
6.配置httpd.conf
# Various default settings #Include conf/extra/httpd-default.conf # Secure (SSL/TLS) connections #Include conf/extra/httpd-ssl.conf #就是这一句话指定了配置文件位置 Include conf/mod_jk2.conf # Note: The following must must be present to support # starting without SSL on platforms with no /dev/random equivalent # but a statically compiled-in mod_ssl. # <IfModule ssl_module> SSLRandomSeed startup builtin SSLRandomSeed connect builtin </IfModule>
7.测试页面
<%@ 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" method="POST"> 名称:<input type=text size=20 name="dataName"> <br> 值:<input type=text size=20 name="dataValue"> <br> <input type=submit> </form> </body> </html>
有个默认的tomcat相应
http://192.168.1.18/testtom/index.jsp
下面是每一个tomcat
http://192.168.1.29:8087/testtom/index.jsp
http://192.168.1.18:8087/testtom/index.jsp
以上就达到了负载均衡,访问http://192.168.1.18/testtom/index.jsp 当一个tomcat down掉了就由另一个工作。
一下给其加入session复制
修改server.xml
<!--默认情况下Cluster是被注销的,我们现在去掉其注销, 两个tomcat都要作此动作,其中 Receiver 的 tcpListenPort 要不同,端口是唯一的。(默认是4001) --> <Cluster className="org.apache.catalina.cluster.tcp.SimpleTcpCluster" managerClassName="org.apache.catalina.cluster.session.DeltaManager" expireSessionsOnShutdown="false" useDirtyFlag="true" notifyListenersOnReplication="true"> <Membership className="org.apache.catalina.cluster.mcast.McastService" mcastAddr="228.0.0.4" mcastPort="45564" mcastFrequency="500" mcastDropTime="3000"/> <Receiver className="org.apache.catalina.cluster.tcp.ReplicationListener" tcpListenAddress="auto" tcpListenPort="4002" tcpSelectorTimeout="100" tcpThreadCount="6"/> <Sender className="org.apache.catalina.cluster.tcp.ReplicationTransmitter" replicationMode="pooled" ackTimeout="15000" waitForAck="true"/> <Valve className="org.apache.catalina.cluster.tcp.ReplicationValve" filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/> <Deployer className="org.apache.catalina.cluster.deploy.FarmWarDeployer" tempDir="/tmp/war-temp/" deployDir="/tmp/war-deploy/" watchDir="/tmp/war-listen/" watchEnabled="false"/> <ClusterListener className="org.apache.catalina.cluster.session.ClusterSessionListener"/> </Cluster> <!-- -->
修改web.xml
<?xml version="1.0" encoding="utf-8"?> <web-app version="2.4" xmlns="http://JAVA.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/xmlSchema-instance" xsi:schemaLocation="http://JAVA.sun.com/xml/ns/j2ee http://JAVA.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <!-- 只需要加入这个标签就ok了 --> <distributable/> .......其他的配置
现在都ok。
http://192.168.1.29:8087/testtom/index.jsp
http://192.168.1.18:8087/testtom/index.jsp
他们的的session是共享的
分享到:
相关推荐
内附完整配置教程和修改后的apache的httpd.conf文件和tomcat的server.xml配置文件,包含test测试项目,不包含apache和tomcat安装文件。 本教程参考网上资料,本机测试成功,如有问题可以私信说明。
当我们谈论"Apache,tomcat负载均衡和session复制"时,这意味着我们要探讨如何在多台服务器之间分配负载,并确保用户会话的无缝迁移和一致性。 **负载均衡**是解决高并发、高可用性问题的重要策略。它通过将来自...
Apache+Tomcat的负载均衡配置就是为了解决这一问题。 负载均衡的基本思想是将来自用户的请求分发到多个后端服务器,这样可以避免任何单一服务器过载,同时提高整体服务的可靠性和响应时间。Apache通常通过其模块mod...
本文将详细介绍如何在Windows环境下,利用Nginx作为反向代理服务器,与Tomcat集群配合实现负载均衡,并进行session复制,确保用户会话在不同服务器之间的一致性。 首先,Nginx是一款轻量级、高性能的HTTP和反向代理...
Apache+Tomcat+Linux集群和均衡负载(Session同步复制
Apache+Tomcat负载均衡与集群配置是提升Web应用性能和高可用性的重要手段。这篇文章将详细介绍如何使用Apache作为前端负载均衡器,与多台Tomcat服务器配合构建集群环境。 首先,我们要理解负载均衡的基本概念,它是...
以下是实现Apache+Tomcat负载均衡整合的详细步骤: 1. **安装与配置Apache**: - 安装Apache HTTP服务器,并确保已启用mod_proxy、mod_proxy_balancer和mod_proxy_http模块。这些模块通常在默认的Apache安装中已经...
在当今的企业级应用中,确保系统的高可用性和稳定性是至关重要的。这通常通过建立集群来实现,即通过部署多台服务器来提供相同的服务,以此来...这样,就完成了整个Mod_Proxy+Apache+Tomcat负载均衡与集群的配置过程。
Apache Tomcat负载均衡是分布式系统中关键的一环,旨在通过分散服务器请求,提高系统的可用性和响应速度,同时增强系统的容错能力。本文将基于提供的文件信息,深入解析Apache Tomcat负载均衡的配置与实现机制。 ##...
首先大家注意: 本文章中没有session共享,关于session共享我会在下一篇中讲解,先实现Nginx+tomcat负载均衡再实现session共享。 从网上查了好多资料,多走了很多弯路,现在把自己成功的方法拿出来与大家分享。 ...
里面有apache安装包,tomcat包,JK的包,还有安装文档,详细描述了apache是怎么与tomcat整合实现负载均衡和session复制的。一看就会。希望对刚刚学习apache与tomcat怎么整合负载均衡和session复制有帮助。
Apache+Tomcat+JK 实现集群负载均衡是一种常见的Web服务器和应用服务器的部署方式,它能够提高系统的可用性和响应速度,实现服务的高并发处理。本文将详细介绍如何配置这一环境。 首先,我们需要准备以下软件: 1. ...
Apache+JK+Tomcat搭建负载均衡是一种常见的高可用性和性能优化策略,主要目的是分散网络流量,提高服务的稳定性和响应速度。这个方案特别适合大型网站或应用,可以有效防止单点故障,提升用户体验。 首先,负载均衡...
【Apache+Tomcat 集群与负载均衡及Session绑定】是将多个Apache和Tomcat服务器配置成一个集群,以实现更高的服务可扩展性和可用性。集群的基本思想是通过将工作负载分散到多个服务器,避免单点故障,提高系统的整体...
【Apache + Tomcat 负载均衡】是Web服务领域常用的一种架构模式,它通过将静态资源处理和动态请求分发进行分离,提高系统性能和可用性。Apache 作为前端服务器,主要负责处理静态内容,如HTML、CSS、JavaScript、...