阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

CentOS-6.4-minimal版中Apache-2.2.29与Tomcat-6.0.41实现负载均衡

107次阅读
没有评论

共计 3986 个字符,预计需要花费 10 分钟才能阅读完成。

CentOS-6.4-minimal 版中 Apache-2.2.29 与 Tomcat-6.0.41 实现负载均衡
———————————————————————————————————————-
关于负载均衡 (Load Balancer) 与集群 (Cluster) 的区别, 以及配置方式的不同, 详见 http://www.linuxidc.com/Linux/2014-09/107336.htm
———————————————————————————————————————-
配置负载均衡
本文建立在 Apache-2.2.29 与 Tomcat-6.0.41 整合的基础上, 整合过程详见 http://www.linuxidc.com/Linux/2014-09/107338.htm

1)修改端口 (由于我是在一台机器上复制多个 tomcat, 所以需要修改端口, 如果是不同的机器就可以跳过这一步)
  [root@CentOS64 app]# vi tomcat/conf/server.xml  (修改 8005 为 -1, 原因详见 http://www.linuxidc.com/Linux/2014-09/107339.htm)
  [root@CentOS64 app]# cp -a tomcat tomcat1
  [root@CentOS64 app]# cp -a tomcat tomcat2
  [root@CentOS64 app]# cp -a tomcat tomcat3
  [root@CentOS64 app]# vi tomcat1/conf/server.xml (修改 ssl 端口和 ajp 端口为 8543 和 8109, 即分别 +100)
  [root@CentOS64 app]# vi tomcat2/conf/server.xml (修改 ssl 端口和 ajp 端口为 8643 和 8209, 即分别 +200)
  [root@CentOS64 app]# vi tomcat3/conf/server.xml (修改 ssl 端口和 ajp 端口为 8743 和 8309, 即分别 +300)
2) 修改 /app/apache/conf/workers.properties, 修改后的内容如下
  worker.list=status,tomcatlb
  worker.status.type=status
  worker.tomcat1.port=8109
  worker.tomcat1.host=127.0.0.1
  worker.tomcat1.type=ajp13
  worker.tomcat1.lbfactor=1
  worker.tomcat2.port=8209
  worker.tomcat2.host=127.0.0.1
  worker.tomcat2.type=ajp13
  worker.tomcat2.lbfactor=1
  worker.tomcat3.port=8309
  worker.tomcat3.host=127.0.0.1
  worker.tomcat3.type=ajp13
  worker.tomcat3.lbfactor=1                                #负载权重, 值越高, 被分发请求的概率越大, 其默认值为 1
  worker.tomcatlb.type=lb                                  #可选值 ajp13,ajp14,jni,lb or status
  worker.retries=6                                          #通信失败时的重试次数, 默认为 2
  worker.tomcatlb.balanced_workers=tomcat1,tomcat2,tomcat3  #参与负载均衡的 Web 服务器
3) 修改 /app/apache/conf/extra/httpd-vhosts.conf
  将默认的 tomcat 改为 tomcatlb, 即指定所有请求交由 tomcatlb 处理
———————————————————————————————————————-
测试负载均衡
1) 启动 apache 和三个 tomcat 后, 就可以通过 jkstatus 看到参与负载均衡的 3 个 tomcat 以及其它参数, 我们也可以通过 jkstatus 修改负载均衡参数
  关于 jkstatus 的配置和使用, 详见 http://www.linuxidc.com/Linux/2014-09/107340.htm
2) 接下来测试一下负载均衡访问, 测试代码已在下方贴出
  访问页面我们会发现, 每次刷新页面, 通过后台日志都可以看到请求是被随机分配给 3 个 tomcat 的, 说明是由 3 个 tomcat 平均承担的, 即负载均衡成功
  并且, 由于这里并没有配置集群, 故每次刷新页面时, 页面打印的 SessionID 都是变化的
———————————————————————————————————————-
关于 workers.properties 的更多属性说明, 可参考以下两个网址
http://tomcat.apache.org/connectors-doc/reference/workers.html 
http://www.linuxidc.com/Linux/2014-09/107341.htm
另外补充两个待验证的 workers 属性描述
1)worker.tomcatlb.sticky_session=true
  此处指定集群是否需要会话复制, 若设为 true 则表明为会话粘性, 不进行会话复制
  当某用户的请求第一次分发到哪台 Tomcat 后, 后继的请求会一直分发到此 Tomcat 服务器上处理
  若设为 false 则表明需要会话复制, 该属性默认值为 true
  当设置为 0(false) 时, 是基于请求的负载均衡, 为 1(true)时是基于用户的负载均衡
2)worker.tomcatlb.sticky_session_force=true
  该属性默认值为 false, 若上面的 sticky_session 设为 true, 则建议此处也设为 true
  此参数表明如果集群中某台 Tomcat 服务器在多次请求没有响应后, 是否将当前的请求转发到其它 Tomcat 服务器上处理
  此参数在 sticky_session=true 时影响比较大, 会导致转发到其它 Tomcat 服务器上的请求找不到原来的 session
  所以如果此时请求中有读取 session 中某些信息的话, 就会导致应用的 Null 异常
———————————————————————————————————————-
@create Sep 27, 2014 6:29:49 PM
@author 玄玉 <http://www.linuxidc.com>

<%@ page language=”Java” pageEncoding=”UTF-8″%>

<%
out.println(“<br>Session ID : ” + session.getId() + “<br>”);
session.setAttribute(“myname”, “session”);
String dataName = request.getParameter(“dataName”);
if(null!=dataName && dataName.length()>0){
 String dataValue = request.getParameter(“dataValue”);
 session.setAttribute(dataName, dataValue);
}
out.print(“<b>Session 列表 </b><br>”);
java.util.Enumeration e = session.getAttributeNames();
while(e.hasMoreElements()){
 String name = (String)e.nextElement();
 String value = session.getAttribute(name).toString();
 out.println(name + ” = ” + value+”<br>”);
}
%>

<form action=”demo.jsp” method=”POST”>
 属性名:<input type=text size=20 name=”dataName”><br>
 属性值:<input type=text size=20 name=”dataValue”><br>
 <input type=submit>
</form>

CentOS-6.4-minimal 版中 Apache-2.2.29 与 Tomcat-6.0.41 实现负载均衡

搭建 LVS 负载均衡测试环境 http://www.linuxidc.com/Linux/2014-09/106636.htm

Apache 负载均衡的实现 http://www.linuxidc.com/Linux/2014-09/106581.htm

更多 CentOS 相关信息见CentOS 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=14

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-20发表,共计3986字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中