安靜的等待

          茹呲綄鎂
          posts - 51, comments - 9, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          Apache,Tomcat集群和負(fù)載均衡

          Posted on 2007-08-09 16:14 ricki 閱讀(302) 評論(0)  編輯  收藏 所屬分類: 負(fù)載均衡配置
          環(huán)境說明

                 Apache  :apache_2.0.55     1 個

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

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

          第一部分:負(fù)載均衡

              負(fù)載均衡,就是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:\ide\apache\Apache2

             解壓兩份Tomcat, 路徑分別為 E:\ide\tomcat1,E:\ide\tomcat2

          下載mod_jk

          2.gif

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

             在apache安裝目錄下conf目錄中找到http.conf

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

            include "E:\ide\apache\Apache2\conf\mod_jk.conf"

          2. http.conf 同目錄下新建mod_jk.conf文件,內(nèi)容如下

          #加載mod_jk Module
          LoadModule jk_module modules/mod_jk-apache-2.0.55.so
          #指定 workers.properties文件路徑
          JkWorkersFile conf/workers.properties
          #指定那些請求交給tomcat處理,"controller"為在workers.propertise里指定的負(fù)載分配控制器
          JkMount /*.jsp controller

          3.在http.conf同目錄下新建 workers.properties文件,內(nèi)容如下

          worker.list = controller,tomcat1,tomcat2  #server 列表
          #========tomcat1========
          worker.tomcat1.port=8009         #ajp13 端口號,在tomcat下server.xml配置,默認(rèn)8009
          worker.tomcat1.host=localhost  #tomcat的主機地址,如不為本機,請?zhí)顚慽p地址
          worker.tomcat1.type=ajp13
          worker.tomcat1.lbfactor = 1   #server的加權(quán)比重,值越高,分得的請求越多
          #========tomcat2========
          worker.tomcat2.port=9009       #ajp13 端口號,在tomcat下server.xml配置,默認(rèn)8009
          worker.tomcat2.host=localhost  #tomcat的主機地址,如不為本機,請?zhí)顚慽p地址
          worker.tomcat2.type=ajp13
          worker.tomcat2.lbfactor = 1   #server的加權(quán)比重,值越高,分得的請求越多
          #========controller,負(fù)載均衡控制器========
          worker.controller.type=lb
          worker.controller.balanced_workers=tomcat1,tomcat2   #指定分擔(dān)請求的tomcat
          worker.controller.sticky_session=1

          4.修改tomcat配置文件server.xml

          如果你在不同電腦上安裝tomcat,tomcat的安裝數(shù)量為一個,可以不必修改tomcat配置文件
          我這里是在同一臺電腦上安裝兩個tomcat,所以需要更改其中一個的設(shè)置
          打開tomcat2/conf/server.xml文件
                  
                  
                  

          5.編寫一個測試jsp
          建立一個目錄test.里面新建一個test.jsp,內(nèi)容為
          <%
             System.out.println("===========================");
          %>

          把test放到tomcat1,tomcat2的webapps下

          6.啟動apache,tomcat1,tomcat2,進行測試
          通過 http://localhost/test/test.jsp 訪問,查看tomcat1的窗口,可以看到打印了一行"=========="
          再刷新一次,tomcat2也打印了一條,再刷新,可以看到請求會被tomcat1,tomcat2輪流處理,實現(xiàn)了負(fù)載均衡.
                  

          第二部分,配置集群

             只配置負(fù)載均衡還不行,還要session復(fù)制,也就是說其中任何一個tomcat的添加的session,是要同步復(fù)制到其它tomcat, 集群內(nèi)的tomcat都有相同的session

          1. 修改tomcat1, tomcat2的server.xml,將集群部分配置的在注釋符刪掉,并將tomcat2的4001端口改為4002,以避免與tomcat沖突,當(dāng)然,如果是兩臺電腦,是不用改端口的,去掉注釋符即可  
                
                
                
                
          2,修改測試項目test

          修改test.jsp,內(nèi)容如下

          <%@ 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 屬性設(shè)置
            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,內(nèi)容如下
          <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>

          注意:在你的應(yīng)用的web.xml加入  <distributable/> 即可
          ok,講test復(fù)制到tomcat1,tomcat2的webapps下,重啟apache,tomcat1,tomcat2,輸入網(wǎng)址 http://localhost/test/test.jsp  
          新建一個 名稱為 xiaoluo  ,值為 cdut 的session,提交查詢,新開一個ie窗口,再提交查詢,如圖,可以看到,兩個tomcat 是負(fù)載均衡,并且session同步的
                       

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 吐鲁番市| 西丰县| 筠连县| 弥勒县| 平度市| 卫辉市| 呈贡县| 自贡市| 昆明市| 韶关市| 沾化县| 沙洋县| 固始县| 浦东新区| 绥棱县| 库尔勒市| 连山| 西盟| 桂东县| 赞皇县| 广汉市| 邵阳县| 伊吾县| 宣城市| 马关县| 嘉荫县| 双流县| 浪卡子县| 措美县| 泽州县| 余干县| 昌宁县| 庆阳市| 南和县| 辽阳县| 闵行区| 昔阳县| 永寿县| 日土县| 桃源县| 天长市|