• Apache+Tomcat+mod_jk负载均衡


    一.需要的软件

      1.jdk1.5以上

      2.Tomcat6以上

      3.Apache2.2以上 ,地址http://apache.dataguru.cn//httpd/binaries/win32/ ,名称:httpd-2.2.25-win32-x86-no_ssl.msi 

      4.jk,地址http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.31/ ,名称mod_jk-1.2.31-httpd-2.2.3.so

    二.安装Apache,记住安装的目录

    三.将mod_jk-1.2.31-httpd-2.2.3.so文件拷入Apache的D:Apache Software FoundationApache2.2modules 目录下

    四.打开Apache的httpd.conf文件,添加外部配置文件引入,在文件的最后面添加。

    include "D:Apache Software FoundationApache2.2confmod_jk.conf"

    五.创建mod_jk.conf文件,并写入一下配置

    1 #加载mod_jk Module
    2 LoadModule jk_module modules/mod_jk-1.2.31-httpd-2.2.3.so
    3 
    4 #指定 workers.properties文件路径
    5 JkWorkersFile conf/workers.properties
    6 
    7 #指定那些请求交给tomcat处理,"controller"为在workers.propertise里指定的负载分配控制器名
    8 JkMount /*.jsp controller

    六.在Apache配置文件目录下创建workers.properties文件,并写入配置

    #server
    worker.list = controller,tomcat1,tomcat2
    #========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=9009
    worker.tomcat2.host=localhost 
    worker.tomcat2.type=ajp13
    worker.tomcat2.lbfactor = 1
     
    #========controller,负载均衡控制器========
    worker.controller.type=lb
    worker.controller.balanced_workers=tomcat1,tomcat2 #指定分担请求的tomcat 
    worker.controller.sticky_session=false #粘性会话
    worker.controller.sticky_session_force=1
    #worker.controller.sticky_session=1 

    七.配置Tomcat

      1.第一个Tomcat不需要修改端口,但是需要放开  

    <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
     <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">

    其中Engine标签已经开放只需要添加名称jvmRoute="" 这里面的名字需要自己起,要和worker.properties里的名称一样

      2.第二个Tomcat需要改端口,改的目的是为了Tomcat在同一台机器运行不冲突即可,然后在开放上面的两个标签。

    八.测试项目

      创建一个动态web项目,新建一个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="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>

    九.在web.xml文件中添加一个标签,表示这个项目是可分配的

    <distributable/>

      如果Tomcat所有的项目都需要共享,则在Tomcat的conf/context.xml添加即可

    十.将测试项目分别部署到Tomcat上,启动Apache服务,在启动两个Tomcat,启动顺序任意。

      1.在本机访问地址为:http://localhost/项目名称/index.jsp

      2.成功的结果,不管怎样刷新页面SessionID都不变,提交的值不会消失

        ID F219C85735A0F7DE958ED3431BF4BEA1.tomcat2

        ID F219C85735A0F7DE958ED3431BF4BEA1.tomcat1

    十一.软件解释

      1.Apache  

        支持最新的HTTP/1.1通信协议
        拥有简单而强有力的基于文件的配置过程
        支持通用网关接口
        支持基于IP和基于域名的虚拟主机
        支持多种方式的HTTP认证
        集成Perl处理模块
        集成代理服务器模块
        支持实时监视服务器状态和定制服务器日志
        支持服务器端包含指令(SSI)
        支持安全Socket层(SSL)
        提供用户会话过程的跟踪
        支持FastCGI
        通过第三方模块可以支持JavaServlets

      2.jk

        mod_jk 简称JK,是Apache服务器的一个可插入模块,用以为Apache或IIS服务器提供处理JSP/Servlet的能力。

        Tomcat本身也可以作为Web服务器使用,但是其功能远不及Apache强大,所以Tomcat往往作为JSP/Servlet容器使用

        mod_jk实质上是Apache与Tomcat的连接器,并藉此附带提供集群和负载均衡的功能。

      3.Tomcat+Apache+mod_jk集成

         实现了负载均衡。

           跨平台。

         优势:配置简单,避免了编译webapp.so的麻烦,

         缺点:在linux下找mod_jk不容易,mod_jk已经不再更新

        

    如果有使用请标明来源:http://www.cnblogs.com/duwenlei/
  • 相关阅读:
    PAT 甲级 1057 Stack(树状数组解法)
    LeetCode 815 公交路线
    201771010123汪慧和《面向对象程序设计JAVA》第六周实验总结
    汪慧和201771010123《面向对象程序设计JAVA》第四周实验总结
    汪慧和201771010123《面向对象程序设计(Java)》第三周学习总结
    201771010123汪慧和《面向对象程序设计Java》第二周学习总结
    汪慧和201771010123
    201771010119穷吉1
    学习进度条201771010119穷吉
    穷吉201771010119*
  • 原文地址:https://www.cnblogs.com/duwenlei/p/4056605.html
Copyright © 2020-2023  润新知