`
- 浏览:
1104727 次
-
环境:操作系统:WindowXP应用服务器:Tomcat6.0.18,Apace2.2.15JDK版本:JDK6一、 前期准备从http://www.apache.org官方网站下载下面两款软件APAHCE 2.2.15下载:apache_2.2.15-win32-x86-no_ssl.msiTOMCAT6.0.18下载:apache-tomcat-6.0.18.zip直接解压。二、 安装过程APAHCE安装目录:C:\Program Files\Apache Software Foundation\Apache2.2两个TOMCAT目录:自行解压到C盘下。分别为 tomcatA,tomcatB三、 配置Apache1、 Apache集群配置1.1、 httpd.conf配置修改APACHE的配置文件C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf 将以下Module的注释去掉,这里并没有使用mod_jk.so进行apache和tomcat的链接,从2.X以后apache自身已集成了
mod_jk.so的功能。只需简单的把下面几行去掉注释,就相当于以前用mod_jk.so比较繁琐的配置了。这里主要采用了代理的方法,就这么简单。LoadModule proxy_module modules/mod_proxy.soLoadModule proxy_connect_module modules/mod_proxy_connect.soLoadModule proxy_ftp_module modules/mod_proxy_ftp.soLoadModule proxy_http_module modules/mod_proxy_http.soLoadModule proxy_ajp_module modules/mod_proxy_ajp.soLoadModule proxy_balancer_module modules/mod_proxy_balancer.so再找到<IfModule dir_module></IfModule>加上index.jsp修改成<IfModule dir_module>DirectoryIndex index.html index.jsp</IfModule>1.1.1、 在最下面加入ProxyRequests Off<proxy balancer://cluster>BalancerMember ajp://127.0.0.1:8019 loadfactor=1 route=jvm1BalancerMember ajp://127.0.0.1:8029 loadfactor=1 route=jvm2</proxy>ProxyRequests Off 是告诉Apache需要使用反向代理(利用Apache进行负载均衡必须使用反向代理)BalancerMember为群集balancer://cluster的成 员,即群集服务器A或B,负载均衡服务器会根据均衡规则来将请求转发给BalancerMember。<proxy balancer://cluster> 用于配置工作在tomcat集群中的所有节点,这里的"cluster"必须与上面的集群名保持一致。Apache通过ajp协议与tomcat进行通信,ip地址和端口唯一确定了tomcat节点和配置的ajp接受端口。loadfactor是负载因子,Apache会按负载因子的比例向后端tomcat节点转发请求,负载因子越大,对应的tomcat服务器就会处理越多的请求,如两个tomcat都是1,Apache就按1:1的比例转发,如果是2和1就按2:1的比例转发。route参数对应后续tomcat配置中的引擎路径(jvmRoute)。注:正向代理的典型用途是为在防火墙内的局域网客户端提供访问Internet的途径。正向代理还可以使用缓冲特性(由mod_cache提供)减少网络使用率。反向代理的典型用途是将防火墙后面的服务器提供给Internet用户访问。反向代理还可以为后端的多台服务器提供负载平衡,或为后端较慢的服务器提供缓冲服务。另外,还可以启用高级URL策略和管理技术,从而使处于不同web服务器系统的web页面同时存在于同一个URL空间下。1.2、 httpd-vhosts.conf设置接下来进行虚拟主机的设置。APACHE的虚拟主机设置如下:首先要修改 conf/httpd.conf找到(#Include conf/extra/httpd-vhosts.conf)把注释去掉。# Virtual hostsInclude conf/extra/httpd-vhosts.conf在文件(extra/httpd-vhosts.conf)最下面加入<VirtualHost *:80> ServerAdmin josenxu001@gmail.com ServerName localhost ServerAlias localhost ProxyPass / balancer://cluster/ stickysession=jsessionid nofailover=On ProxyPassReverse / balancer://cluster/ ErrorLog "logs/localhost-error.log" CustomLog "logs/localhost-access.log" common</VirtualHost>ProxyPass为代理转发Url,即将所有访问/的请求转发到群集balancer://cluster 这里balancer://是告诉Apache需要进行负载均衡的代理,后面的cluster是集群名(可以随意取),两个日志引擎ErrorLog负责记录错误,CustomLog负责记录所有的http访问以及返回状态,日志名可以自己取2、 配置 tomcat2.1. 配置 server 的关闭我们需要在一台机器上跑两个不同的 tomcat ,需要修改不同的 tomcat 的关闭口,避免出现端口被占用的情况。其中tomcatA用默认值,不修改。修改tomcatB\conf下的 server.xml将:<Server port="8080" shutdown="SHUTDOWN">改为<Server port="8081" shutdown="SHUTDOWN">2.2. 配置 Engine把原来的配置注释掉,把下面一句去掉注释。并标明jvmRoute="jvm2".<Engine name="Standalone" defaultHost="localhost" jvmRoute="jvm2">以下是原来的配置。<!-- <Engine name="Catalina" defaultHost="localhost"> -->tomcatB也要同样 配置。注意:jvmRoute配置不要一样。<Engine name="Standalone" defaultHost="localhost" jvmRoute="jvm2">2.3. 配置 Connector原来的默认配置。<!-- Define an AJP 1.3 Connector on port 8009 --><Connector port="8019" protocol="AJP/1.3" redirectPort="8343" />这里是apache和tomcat链接的关键,前台apache就是通过AJP协议与tomcat进行通信的,以完成负载均衡的作用。也可以用 HTTP协议。大家注意它们是如何连接通信的,上面的红色部分(port="8019")就是连接的接口了。tomcatB的<Connector port="XXX" />port分别改成与上面<proxy balancer://cluster>#与tomcatA对应,route与<Engine jvmRoute="jvm1">对应。BalancerMember ajp://127.0.0.1:8019 loadfactor=1 route=jvm1#与tomcatB对应,route与<Engine jvmRoute="jvm2">对应。BalancerMember ajp:// 127.0.0.1:8029 loadfactor=1 route=jvm2</proxy>2.4. Session共享配置,修改server.xml中Cluster(每个tomcat中都要修改)原来的配置。<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>修改为以下的代码:<Receiver port=”XX”/>port也要保证唯一性。<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;"/><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>四、编写测试JSP页面1、 在webapps目录创建一个web工程:test2、 修改web.xml,在其中增加一段代码,如下:<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"><display-name>docexchangecenter</display-name>
<distributable/></web-app>3、在test目录下新建一个test.jsp页面<%@ page contentType="text/html; charset=utf-8" %><%@ 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.println("<b>Session 列表</b><br>"); System.out.println("============================"); 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="test.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>五、启动应用服务器,注意启动顺充。1:apache服务器,2:tomcat服务器六、测试是否配置成功访问apache服务器的web服务http://lcoalhost/balancer-manager如果显示负载均衡有关信息则说明成功了。接着可以访问http://localhost/test即访问到了tomcat的test应用, 操作多次发现信息在tomcat控制台交替打印
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
Apache+Tomcat集群配置详解 把Apache安装为运行在80端口的Windows服务,安装成功后在系统服务列表中可以看到Apache2.2服务。对于已安装IIS的机器,在启动Apache服务之前必须首先停止IIS Admin服务,不然会因为端口...
Apache+Tomcat集群配置,Apache+Tomcat集群配置,Apache+Tomcat集群配置
Apache+Tomcat集群配置续Apache+Tomcat集群配置续Apache+Tomcat集群配置续Apache+Tomcat集群配置续
Apache + Tomcat集群配置详解
apache+tomcat集群配置文件和文档说明. 其中包含了apache的安装文件和tomcat的安装文件 以及集群配置的文档
apache+tomcat集群 配置使用方法
Apache+Tomcat集群,本文Apache+Tomcat集群配置 基于最新的Apache和Tomcat,具体是2011年4月20日最新的Tomcat和Apache集群和负载均衡配置。
windows系统下apache和tomcat集群配置,自己整理的!