zoukankan      html  css  js  c++  java
  • apache和tomcat搭建集群

    最近在学习简单的apache服务器和两个tomcat一起搭建集群,这里简单记录一下


    1.准备工作

    ①搭建一个可以运行的web项目 用maven搭建springmvc项目 ,只要将这里面的web.xml中添加一行 <distributable/>,然后将首页即index.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="test2.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>

    目的就是更清楚的看到session值


    ②下载并运行apache服务器  下载并运行apache服务器

    ③在同一电脑上启动两个tomcat  一台电脑上运行两个tomcat

    ④下载mod_jk.so  从官网下载mod_jk.so 

    2.开始配置

    ①到apache的conf目录下找到httpd.conf文件,打开,在最后面加上include conf/mod_jk.conf

    在conf目录下(即和httpd.conf同一级目录下)新建 mod_jk.conf文件

    #加载mod_jk Module     
    LoadModule jk_module modules/mod_jk.so
        
    #指定 workers.properties 文件路径     
    JkWorkersFile conf/workers.properties     
        
    #指定那些请求交给tomcat处理,"controller"为在workers.propertise里指定的负载分配控制器     
    
    JkMount /* controller  
    

    将准备工作中下载的mod_jk.so放在apache的modules目录下

    ④在conf目录下新加workers.properties(即第二步中的  JkWorkersFile conf/workers.properties    ),并写入

    worker.list = controller,tomcat1,tomcat2  #server 列表      
    #========tomcat1========      
    worker.tomcat1.port=8009       #ajp13 端口号,在tomcat下server.xml配置,默认8009      
    worker.tomcat1.host=localhost  #tomcat的主机地址,如不为本机,请填写ip地址      
    worker.tomcat1.type=ajp13      
    worker.tomcat1.lbfactor = 1    #server的加权比重,值越高,分得的请求越多      
         
    #========tomcat2========      
    worker.tomcat2.port=8109       #ajp13 端口号,在tomcat下server.xml配置,默认8009      
    worker.tomcat2.host=localhost  #tomcat的主机地址,如不为本机,请填写ip地址      
    worker.tomcat2.type=ajp13      
    worker.tomcat2.lbfactor = 2    #server的加权比重,值越高,分得的请求越多      
         
    #========controller,负载均衡控制器========      
    worker.controller.type=lb      
    worker.controller.balance_workers=tomcat1,tomcat2   #指定分担请求的tomcat      
    worker.controller.sticky_session=false  

    一定要注意,这里的worker.tomcat1.port=8009,这里的port是


    而不是

    妈蛋,就因为这个问题找了我半天。。。( ╯□╰ )


    ⑤继续配置tomcat

    将tomcat(已经在准备工作中改了端口号的)中的server.xml中的

    加上 jvmRoute="tomcat1",这是第一个tomcat,并且将

    注释里面放出来。

    而tomcat2是



    ⑥将项目放入tomcat中,我的项目名叫TestWeb,将项目打成war包,分别放在同两个tomcat的webapps下面

    然后先启动apache,再启动两个tomcat,分别访问

    tomcat1:

    tomcat2:

    最后在apache(默认端口被我改成了88)中访问,可以看到

    停的刷新会发现,tomcat1和tomcat2会交替出现,而且两个tomcat的session值是一样的

    这样,简单的集群就搭建好了。

    备注:

    在搭建过程中,出现了很多问题,先总结如下

    1.apache和mod_jk.so不匹配

    2.配置修改错了,出现错误基本都是配置出错了

    3.出现错误先去查看apache的log日志,找到原因,再继续

    这里不一定完整,请看

    1.http://www.cnblogs.com/God-froest/p/apache_tomcat.html

    2.http://www.ibm.com/developerworks/cn/opensource/os-lo-apache-tomcat/index.html

    3.网上有很多实例



  • 相关阅读:
    Redis
    Redis入门
    C#编程--语句(分支语句)
    C#编程--运算符
    C#编程--输入和输出
    C#编程进制转换
    C#语言课程11月10日
    C#语言课程11月9日
    C#语言课程11月7日
    C#语言课程11月6日
  • 原文地址:https://www.cnblogs.com/Iqiaoxun/p/5350572.html
Copyright © 2011-2022 走看看