zoukankan      html  css  js  c++  java
  • 轻松实现Apache,Tomcat集群和负载均衡

     

     作者:罗代均 ldj_work#126.com,转载请保持完整性

    0, 环境说明

           Apache  :apache_2.0.55     1 个

           Tomcat:  apache-tomcat-5.5.17 (zip版) 2个

           mod_jk:: mod_jk-apache-2.0.55.so  1个

    第一部分:负载均衡

        负载均衡,就是apache将客户请求均衡的分给tomcat1,tomcat2....去处理

       1.安装apche,tomcat

       http://httpd.apache.org/ 下载Apache 2.0.55

        http://tomcat.apache.org/download-55.cgi 下载tomcat5.5 zip版本(解压即可,绿色版)

       http://apache.justdn.org/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.15/  下载mod_jk,注意和  apache版本匹配

       按照jdk,我的路径为:E:ideapacheApache2

       解压两份Tomcat, 路径分别为 E:ide omcat1,E:ide omcat2

    下载mod_jk

    2.修改Apache配置文件http.conf

       在apache安装目录下conf目录中找到http.conf

       在文件最后加上下面一句话就可以了

      include "E:ideapacheApache2confmod_jk.conf"

    2. http.conf 同目录下新建mod_jk.conf文件,内容如下   #加载mod_jk Module
    LoadModule jk_module modules/mod_jk-apache-2.0.55.so#指定 workers.properties文件路径
    JkWorkersFile conf/workers.properties#指定那些请求交给tomcat处理,"controller"为在workers.propertise里指定的负载分配控制器JkMount /*.jsp controller3.在http.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=9009       #ajp13 端口号,在tomcat下server.xml配置,默认8009
    worker.tomcat2.host=localhost  #tomcat的主机地址,如不为本机,请填写ip地址
    worker.tomcat2.type=ajp13
    worker.tomcat2.lbfactor = 1   #server的加权比重,值越高,分得的请求越多
    #========controller,负载均衡控制器========
    worker.controller.type=lb
    worker.controller.balanced_workers=tomcat1,tomcat2   #指定分担请求的tomcat
    worker.controller.sticky_session=14.修改tomcat配置文件server.xml如果你在不同电脑上安装tomcat,tomcat的安装数量为一个,可以不必修改tomcat配置文件我这里是在同一台电脑上安装两个tomcat,所以需要更改其中一个的设置打开tomcat2/conf/server.xml文件5.编写一个测试jsp建立一个目录test.里面新建一个test.jsp,内容为<% 
       System.out.println("===========================");
    %>
    把test放到tomcat1,tomcat2的webapps下6.启动apache,tomcat1,tomcat2,进行测试通过 http://localhost/test/test.jsp 访问,查看tomcat1的窗口,可以看到打印了一行"=========="再刷新一次,tomcat2也打印了一条,再刷新,可以看到请求会被tomcat1,tomcat2轮流处理,实现了负载均衡第二部分,配置集群   只配置负载均衡还不行,还要session复制,也就是说其中任何一个tomcat的添加的session,是要同步复制到其它tomcat, 集群内的tomcat都有相同的session1. 修改tomcat1, tomcat2的server.xml,将集群部分配置的在注释符删掉,并将tomcat2的4001端口改为4002,以避免与tomcat冲突,当然,如果是两台电脑,是不用改端口的,去掉注释符即可  2,修改测试项目test修改test.jsp,内容如下  <%@ page contentType="text/html; charset=GBK" %>
    <%@ 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.print("<b>Session 列表</b>");  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>然后在test 新建WEB-INF目录,WEB-INF下新建web.xml,内容如下<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
           <display-name>TomcatDemo</display-name>
           <distributable/>
    </web-app>注意:在你的应用的web.xml加入  <distributable/> 即可ok,讲test复制到tomcat1,tomcat2的webapps下,重启apache,tomcat1,tomcat2,输入网址 http://localhost/test/test.jsp   新建一个 名称为 xiaoluo  ,值为 cdut 的session,提交查询,新开一个ie窗口,再提交查询,如图,可以看到,两个tomcat 是负载均衡,并且session同步的
  • 相关阅读:
    scrapy中selenium的应用
    Django的锁和事务
    redis
    【leetcode】187. Repeated DNA Sequences
    【leetcode】688. Knight Probability in Chessboard
    【leetcode】576. Out of Boundary Paths
    【leetcode】947. Most Stones Removed with Same Row or Column
    【leetcode】948. Bag of Tokens
    【leetcode】946. Validate Stack Sequences
    【leetcode】945. Minimum Increment to Make Array Unique
  • 原文地址:https://www.cnblogs.com/aenjon/p/4088814.html
Copyright © 2011-2022 走看看