Apache+Tomcat部署负载均衡(或集群)
来源:互联网 发布:java中多态的表现形式 编辑:程序博客网 时间:2024/05/22 13:19
一、负载均衡网络拓扑图。
一、Apache服务器的安装及配置。
1.先网上下载Apache服务器安装版,双击安装,直接下一步下一步不需要做任何配置。
2.安装好以后打开安装目录,找到conf目录打开
1.手动创建两个文件
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">下面添加以下字段:
<
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
>
<
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"></
membership
>
<
receiver
classname="org.apache.catalina.tribes.transport.nio.NioReceiver" address="auto" port="4001" selectortimeout="100" maxthreads="6"></
receiver
>
<
sender
classname="org.apache.catalina.tribes.transport.ReplicationTransmitter">
<
transport
classname="org.apache.catalina.tribes.transport.nio.PooledParallelSender" timeout="60000"></
transport
>
</
sender
>
<
interceptor
classname="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"></
interceptor
>
<
interceptor
classname="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"></
interceptor
>
<
interceptor
classname="org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor"></
interceptor
>
</
channel
>
<
valve
classname="org.apache.catalina.ha.tcp.ReplicationValve" filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"></
valve
>
<
clusterlistener
classname="org.apache.catalina.ha.session.ClusterSessionListener"></
clusterlistener
>
</
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 集群 负载均衡 部署
- 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集群
- Apache负载均衡+Tomcat集群
- tomcat+apache负载均衡集群
- maven assembly plugin使用
- Struts2拦截器的使用 (详解)
- 可点进来看看的一些Python基础
- JDk1.6中文版 math类
- springMVC+MyBatis+meaven整合的pom.xml配置文件
- Apache+Tomcat部署负载均衡(或集群)
- 最终一致性算法Gossip简介
- php 格式化字节大小
- 关于营改增
- Qt Quick图形效果
- 函数指针作为参数传递
- nginx 之 注意事项
- iOS代码片段
- 分析Android引起的“电视智能化”之TV用UI的现状与未来