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

    httpd.conf
        httpd.conf中添加:
        #与tomcat的插件
        include "D:clusterServerapacheconfmod_jk.conf

    mod_jk.conf
        在apache的conf文件夹中创建mod_jk.conf文件,并添加以下内容:
            LoadModule jk_module modules/mod_jk.so
            JkWorkersFile conf/workers.properties
            #指定那些请求交给tomcat处理,"controller"为在workers.propertise里指定的负载分配控制器名
            JkMount /*.jsp controller

        
    复制插件文件mod_jk.so到apache的modules文件夹中

    workers.properties
        新建并编辑workers.properties文件,内容如下:
            worker.list = controller

            #========tomcat1========
            worker.tomcat1.port=11009
            worker.tomcat1.host=localhost
            worker.tomcat1.type=ajp13
            worker.tomcat1.lbfactor = 1

            #========tomcat2========
            worker.tomcat2.port=12009
            worker.tomcat2.host=localhost
            worker.tomcat2.type=ajp13
            worker.tomcat2.lbfactor = 1

            #========controller,负载均衡控制器========
            worker.controller.type=lb
            worker.controller.balanced_workers=tomcat1,tomcat2
            #      true:不进行回话复制,使用相同的tomcat处理回话;        false:回话进行复制,一台tomcat当掉,另一台也可持续访问
            worker.controller.sticky_session=false
            #ture:当一台tomcat访问没有反馈的时候,转换到另一台tomcat处理
            worker.controller.sticky_session_force=1


    server.xml
        tomcat配置文件:server.xml

            修改server.xml文件相关的端口信息,若在同一台机器上部署多个tomcat,请确保多个tomcat能够同时启动。

            Engine节点添加jvmRoute属性,属性的值要与apache中的配置文件workers.properties中的worker.controller.balanced_workers值中的一个。


            Connector节点的port属性要与apache中的配置文件workers.properties中worker.tomcat1.port值一致。


            去掉Engine节点以下配置信息的注释:
            <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
            说明:
                其实这只是对Cluster的最简单的一种配置,该配置下tomcat使用的是all-to-all方式的session同步,这种方式只适用于小规模的集群,即,session复制。
                tomcat另外一种session共享方式,只需为Cluster配置BackupManager即可,参看http://tomcat.apache.org/tomcat-7.0-doc/cluster-howto.html

    web.xml
        web工程的web.xml中添加以下配置信息:(属性告诉servlet/JSP容器,编写的应用将在分布式Web容器中部署)
            <distributable/>

    测试用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="index.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>
    


    ==================================================================================================
    常见问题:

    1、  如果同一台机器上的节点之间session能够同步,但是不同机器间的session无法同步,可能的原因是机器间的时钟不同步,需要进行同步操作。        
    2、  关于jvmRoute。
    前面实验中的sessionid由两部分组成(前缀+后缀),而其后缀名就是jvmRoute配置的名称,mod_jk需要根据这个后缀名进行请求转发:当sticky_session=1时,mod_jk根据这个后缀名来判断该会话应该始终由哪个tomcat进行处理。


            
    参考书目:
    Professional.Apache.Tomcat6    
            
            
    参考文档:
    http://hi.baidu.com/wudengke213/item/5f63b016921850cc38cb306e
    http://www.360doc.com/content/12/0404/19/9350055_200808330.shtml

  • 相关阅读:
    BNUOJ 12756 Social Holidaying(二分匹配)
    HDU 1114 Piggy-Bank(完全背包)
    HDU 2844 Coins (多重背包)
    HDU 2602 Bone Collector(01背包)
    HDU 1171 Big Event in HDU(01背包)
    HDU 2571 命运 (入门dp)
    HDU 1069 Monkey and Banana(最长递减子序列)
    HDU 1160 FatMouse's Speed (最长上升子序列)
    HDU 2594 KMP
    POJ 3783 Balls --扔鸡蛋问题 经典DP
  • 原文地址:https://www.cnblogs.com/kszit/p/3613838.html
Copyright © 2011-2022 走看看