设为首页 收藏本站
查看: 1645|回复: 0

[经验分享] apache+tomcat配置负载均衡

[复制链接]

尚未签到

发表于 2015-8-2 11:32:39 | 显示全部楼层 |阅读模式
  
  1.
  相关的软件
  JDK:jdk-1_5_0_05-windows-i586-p.exe
  Apache:apache_2.2.11-win32-x86-no_ssl.msi
  Tomcat:apache-tomcat-5.5.27(绿色).zip
  Mod_jk:mod_jk-1.2.27-httpd-2.2.10.so
  2.1
  安装JDK,Tomcat,Apache
  配置环境变量
  JAVA_HOME:C:"Program Files"Java"jdk1.5.0_05(JDK的安装目录)
  mod_jk配置文件
  将mod_jk-1.2.27-httpd-2.2.10.so放到E:"Program Files"Apache Software Foundation"Apache2.2"modules目录下
  2.2
   修改Apache配置文件http.conf
  在文件最后加上下面一句:
  include conf/mod_jk.conf
  2.3
  http.conf 同目录下新建mod_jk.conf文件
  内容如下
  ### 加载 mod_jk 模块
  LoadModule jk_module modules/mod_jk-1.2.27-httpd-2.2.10.so
  ### 配置 mod_jk
  JkWorkersFile conf/workers.properties
  #加载集群中的workers
  JkMountFile conf/uriworkermap.properties
  #加载workers的请求处理分配文件
  JkLogFile logs/mod_jk.log
  #指定jk的日志输出文件
  JkLogLevel warn
  #指定日志级别
  2.4
  在http.conf同目录下新建 workers.properties文件,内容如下
  # worker列表
  worker.list=controller, status
  #第一个server的配置,server名为s1
  #ajp13 端口号,在tomcat下server.xml配置,默认8009
  worker.s1.port=7009
  #tomcat的主机地址,如不为本机,请填写ip地址
  worker.s1.host=localhost
  worker.s1.type=ajp13
  #server的加权比重,值越高,分得的请求越多
  worker.s1.lbfactor=1
  #第二个server的配置,server名为s2
  worker.s2.port=9009
  worker.s2.host=localhost
  worker.s2.type=ajp13
  worker.s2.lbfactor=1
  #server名为controller,用于负载均衡
  worker.controller.type=lb
  worker.retries=3   #重试次数
  #指定分担请求的server列表,用逗号分隔
  worker.controller.balanced_workers=s1,s2
  #设置用于负载均衡的server的session可否共享 有不少文章说设置为1是可以的,但是我是设置为0才可以的
  worker.controller.sticky_session=0
  #worker.controller.sticky_session_force=1
  worker.status.type=status
  2.5
  在http.conf同目录下新建 uriworkermap.properties文件,内容如下
  /*=controller                     #所有请求都由controller这个server处理
  /jkstatus=status                   #所有包含jkstatus请求的都由status这个server处理
  !/*.gif=controller                   #所有以.gif结尾的请求都不由controller这个server处理,以下几个都是一样的意思
  !/*.jpg=controller
  !/*.png=controller
  !/*.css=controller
  !/*.js=controller
  !/*.htm=controller
  !/*.html=controller
  2.6
   修改tomcat1,tomcat2的配置文件server.xml如果你是水平集群,即在不同电脑上安装tomcat,tomcat的安装数量为一个,可以不必修改tomcat配置文件.我这里是在同一台电脑上安装两个tomcat,实现的是垂直集群方式,所以必须修改其中一个的设置,以避免端口冲突
  (1)修改关闭Tomcat的监听端口8005
  Tomcat1:
  
  Tomcat1:
  
  (2)修改http服务端口号8080
  Tomcat1:
  
  Tomcat2:
  
  (3)修改AJP端口号8009
  Tomcat1:
  
  Tomcat1:
  
  注:前面 useBodyEncodingForURI="true" 和 URIEncoding="GBK" 是用来处理URL GET时乱码问题
  (4)文件目录映射
  在文件底部添加静态文件目录:
  
        
     
  
  
   3 配置集群
  只配置负载均衡还不行,还要session复制,也就是说其中任何一个tomcat的添加的session,是要同步复制到其它tomcat, 集群内的tomcat都有相同的session。
  3.1     修改tomcat1, tomcat2的server.xml
  (1)启用集群部分配置
  即对节点的在注释符删掉,并将修改tcpListenPort端口4001,以避免与tomcat冲突,当然,如果是两台电脑,是不用改端口的,去掉注释符即可
  Tomcat1:
  tcpListenPort="4002"
  Tomcat2:
  tcpListenPort="4003"
  (2)配置引擎
  为 Tomcat1和 Tomcat2 增加 jvmRoute
  Tomcat1:
          
     
  
  Tomcat2:
  
     
     
  
  3.2     配置Session复制
  在需要集群的web应用程序的web.xml中加上属性,表明该应用可多应用分流处理,能进行Session的复制
  #注意:在你的应用的web.xml加入  即可,如下
  
  
   campus
  
  
  最后jsp代码测试
  
  
  Cluster App Test
  
  Server Info:
  
   0) {
       String dataValue = request.getParameter("dataValue");
       session.setAttribute(dataName, dataValue);
   }
   out.print("Session 列表");
   Enumeration e = session.getAttributeNames();
   while (e.hasMoreElements()) {
       String name = (String)e.nextElement();
       String value = session.getAttribute(name).toString();
       out.println( name + " = " + value+"");
           System.out.println( name + " = " + value);
     }
  %>
  
      名称:
       
      值:
       
     
     
  
  
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-93275-1-1.html 上篇帖子: apache module 读取配置文件 下篇帖子: linux+apache+mysql+php+zend 脚本
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表