分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

Apache+Tomcat部署负载均衡(或集群)

发布时间:2023-09-06 01:44责任编辑:胡小海关键词:暂无标签

本来只打算写Tomcat集群部署,简化Apache和Tomcat整合过程的。后来想了想,这样不便于没有用过Apache的朋友来学习本文内容。于是干脆加大篇幅,让对Apache不了解的朋友能对Apache有个初步的认识,阿帕奇。

如果对集群概念不了解,可以看一下之前写的一篇:WebLogic部署集群和代理服务器 这篇对集群的概念解释的比较细致,与weblogic集群的不同之处在于,它对各个子服务器上应用的部署,是由weblogic容器自动完成的。而tomcat则需要手动去拷贝项目。

一、负载均衡网络拓扑图。

一、Apache服务器的安装及配置。

1.先网上下载Apache服务器安装版,双击安装,直接下一步下一步不需要做任何配置。

2.安装好以后打开安装目录,找到conf目录打开

1.手动创建两个文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
mod_jk.conf
#================从这里复制================
#加载mod_jk Module   注意文件名根据实际情况而填
LoadModule jk_module modules/mod_jk-1.2.31-httpd-2.2.3.so
 
 
#指定 workers.properties文件路径
JkWorkersFile conf/workers.properties
 
#指定那些请求交给tomcat处理,"controller"为在workers.propertise里指定的负载分配控制器  
JkMount /*.do controller
JkMount /*WEB-INF controller
JkMount /*j_spring_security_check controller
JkMount /*.action controller
JkMount /servlet/* controller
JkMount /*.jsp controller
JkMount /*.do controller
JkMount /*.action controller
JkMount /* controller
#================文件内容================

2.修改httpd.conf文件内容

打开httpd.conf文件,最后一行加上:Include conf/mod_jk.conf

Apache默认端口是80,如果需要改端口直接找到该文件下Listen 80字段,把这个80改掉就可以了。

3.添加mod_jk-1.2.31-httpd-2.2.3.so插件

下载mod_jk-1.2.31-httpd-2.2.3.so文件添加到modules文件夹下。这个so文件是配置负载均衡必须要用到的插件。

配到这里Apache这块就不用去动了。

三、Tomcat服务器的安装及配置。

1.下载tomcat后直接解压得到。

2.打开conf文件夹下的server.xml文件修改以下内容保证两台tomcat的相应端口不冲突:

第一处:port

<Server port="9011" shutdown="SHUTDOWN">

第二处:port、redirectPort  注意编码格式需设置成gbk,否则存在乱码问题

<Connector port="9001" protocol="HTTP/1.1"

               connectionTimeout="20000"

               redirectPort="9441" 

   URIEncoding="GBK"/>

第三处:port对应Apache配置文件中配置的port、redirectPort,注意编码

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

替换成:

第四处:jvmRoute对应Apache配置文件中配置的tomcat名

 <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">

第五处:只改蓝色标记的port

在<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">下面添加以下字段:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
                  channelSendOptions="6">
              <Manager className="org.apache.catalina.ha.session.BackupManager"
                    expireSessionsOnShutdown="false"
                    notifyListenersOnReplication="true"
                    mapSendOptions="6"/>
           <Channel className="org.apache.catalina.tribes.group.GroupChannel">
            <Membership className="org.apache.catalina.tribes.membership.McastService"
                         bind="127.0.0.1"
                         address="228.0.0.4"
                         port="45564"
                         frequency="500"
                         dropTime="3000"/>
             <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
                       address="auto"
                       port="4001"
                       selectorTimeout="100"
                       maxThreads="6"/>
             <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
               <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender" timeout="60000"/> 
             </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>

四、应用部署及运行

1.将项目拷贝到所有tomcat下的webapps文件夹下。

2.找到tomcat服务器bin目录下的startup.bat文件,双击启动tomcat

3.启动完所有tomcat之后启动Apache:直接点击图标启动

五、session复制

打开项目中WEB-INF文件夹下的web.xml文件,倒数第二行加入<distributable/>

五、测试页

创建以下文件放到项目中,用于测试负载均衡和session复制

文件名:Test.jsp

 1 <%@ page contentType="text/html; charset=GBK" %> 2 <%@ page import="java.util.*" %> ???3 <html><head><title>Cluster App Test</title></head> ???4 <body> ???5 ?6 <% ?????7 ???System.out.println("SessionID:" ?+ session.getId()); ????8 %> ???9 10 Server Info: ???11 12 <% ???13 out.println(request.getServerName() + " : " + request.getServerPort()+"<br>");%> ??14 15 <% ???16 ??out.println("<br> ID " + session.getId()+"<br>"); ?// 如果有新的 Session 属性设置 ???17 18 ??String dataName = request.getParameter("dataName"); ???19 20 ??if (dataName != null && dataName.length() > 0) { ???21 ?????String dataValue = request.getParameter("dataValue"); ???22 ?????session.setAttribute(dataName, dataValue); ???23 ??} ???24 25 ??out.print("<b>Session 列表</b><br>"); ?????26 ??Enumeration e = session.getAttributeNames(); ???27 28 ??while (e.hasMoreElements()) { ???29 ?????String name = (String)e.nextElement(); ???30 ?????String value = session.getAttribute(name).toString(); ???31 ?????out.println( name + " = " + value+"<br>"); ???32 ?????System.out.println( name + " = " + value); ???33 ???} ???34 %> ??35 36 ??<form action="test.jsp" method="POST"> ??37 ????名称:<input type=text size=20 name="dataName"> ??38 ?????<br> ??39 ????数值:<input type=text size=20 name="dataValue"> ??40 ?????<br> ??41 ????<input type=submit> ??42 ???</form> ??43 </body> ??44 </html> 

这是Apache+Tomcat部署负载均衡(或集群),如果有在同一台电脑上部署多组集群的需求的话,还需要在配置上做一些改动

Apache+Tomcat部署负载均衡(或集群)

原文地址:https://www.cnblogs.com/HeXiaoZhou/p/8525452.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved