JAVA實(shí)踐中整理出tomcat集群和負(fù)載均衡

字號:

(一)環(huán)境說明
    (1)服務(wù)器有4臺,一臺安裝apache,三臺安裝tomcat
    (2)apache2.0.55、tomcat5.5.15、jk2.0.4、jdk1.5.6或jdk1.4.2
    (3)ip配置,一臺安裝apache的ip為192.168.0.88,三臺安裝tomcat的服務(wù)器ip分別為192.168.0.1/2/4
    (二)安裝過程
    (1)在三臺要安裝tomcat的服務(wù)器上先安裝jdk
    (2)配置jdk的安裝路徑,在環(huán)境變量path中加入jdk的bin路徑,新建環(huán)境變量JAVA_HOME指向jdk的安裝路徑
    (3)在三臺要安裝tomcat的服務(wù)器上分別安裝tomcat,調(diào)試三個tomcat到能夠正常啟動
    (4)tomcat的默認(rèn)WEB服務(wù)端口是8080,默認(rèn)的模式是單獨(dú)服務(wù),我的三個tomcat的WEB服務(wù)端口修改為7080/8888/9999
    v修改位置為tomcat的安裝目錄下的conf/server.xml
    修改前的配置為
        maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
    enableLookups="false" redirectPort="8443" acceptCount="100"
    connectionTimeout="20000" disableUploadTimeout="true" />
    修改后的配置為
        maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
    enableLookups="false" redirectPort="8443" acceptCount="100"
    connectionTimeout="20000" disableUploadTimeout="true" />
    依次修改每個tomcat的監(jiān)聽端口(7080/8888/9999)
    (5)分別測試每個tomcat的啟動是否正常
    http://192.168.0.1:7080
    http://192.168.0.2:8888
    http://192.168.0.4:9999(三)負(fù)載均衡配置過程
    (1)在那臺要安裝apache的服務(wù)器上安裝apache2.0.55,我的安裝路徑為默認(rèn)C:\Program Files\Apache Group\Apache2
    (2)安裝后測試apache能否正常啟動,調(diào)試到能夠正常啟動http://192.168.0.88
    (3)下載jk2.0.4后解壓縮文件
    (4)將解壓縮后的目錄中的modules目錄中的mod_jk2.so文件復(fù)制到apache的安裝目錄下的modules目錄中,我的為C:\Program Files\Apache Group\Apache2\modules
    (5)修改apache的安裝目錄中的conf目錄的配置文件httpd.conf,在文件中加LoadModule模塊配置信息的最后加上一句LoadModule jk2_module modules/mod_jk2.so
    (6)分別修改三個tomcat的配置文件conf/server.xml,修改內(nèi)容如下修改前
    
    修改后
    
    將其中的jvmRoute="jvm1"分別修改為jvmRoute="tomcat1"和jvmRoute="tomcat2"和jvmRoute="tomcat3"
    (7)然后重啟三個tomcat,調(diào)試能夠正常啟動。
    (8)在apache的安裝目錄中的conf目錄下創(chuàng)建文件workers2.propertie,寫入文件內(nèi)容如下
    # fine the communication channel
    [channel.socket:192.168.0.1:8009]
    info=Ajp13 forwarding over socket
    配置第一個服務(wù)器tomcatId=tomcat1 #要和tomcat的配置文件server.xml中的jvmRoute="tomcat1"名稱一致debug=0 lb_factor=1 #負(fù)載平衡因子,數(shù)字越大請求被分配的幾率越高
    # Define the communication channel
    [channel.socket:192.168.0.2:8009]
    info=Ajp13 forwarding over socket
    tomcatId=tomcat2
    debug=0
    lb_factor=1
    # Define the communication channel
    [channel.socket:192.168.0.4:8009]
    info=Ajp13 forwarding over socket
    tomcatId=tomcat3
    debug=0
    lb_factor=1
    [status:]
    info=Status worker, displays runtime information.
    [uri:/jkstatus.jsp]
    info=Display status information and checks the config file for changes.
    group=status:
    [uri:/*]
    info=Map the whole webapp
    debug=0
    (9)在三個tomcat的安裝目錄中的webapps建立相同的應(yīng)用,我和應(yīng)用目錄名為TomcatDemo,在三個應(yīng)用目錄中建立相同 WEB-INF目錄和頁面index.jsp,index.jsp的頁面內(nèi)容如下
    <%@ page contentType="text/html; charset=GBK" %>
    <%@ page import="java.util.*" %>
    Cluster App Test
    
    Server Info:
    <%
    out.println(request.getLocalAddr() + " : " + request.getLocalPort()+"
    ");%>
    <%
    out.println("
     ID " + session.getId()+"
    ");
    // 如果有新的 Session 屬性設(shè)置
    String dataName = request.getParameter("dataName");
    if (dataName != null && dataName.length() > 0) {
    String dataValue = request.getParameter("dataValue");
    session.setAttribute(dataName, dataValue);
    }
    out.print("Session 列表");
    Enumeration e = session.getAttributeNames();
    while (e.hasMoreElements()) {
    String name = (String)e.nextElement();
    String value = session.getAttribute(name).toString();
    out.println( name + " = " + value+"
    ");
    System.out.println( name + " = " + value);
    }
    %>
    

    名稱:
    值:
    
    

    
    

    (10)重啟apache服務(wù)器和三個tomcat服務(wù)器,到此負(fù)載 均衡已配置完成。測試負(fù)載均衡先測試apache,訪問http://pic02.newdu.com/uploads/202503/19/1156.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/>
        tempDir="/tmp/war-temp/"
    deployDir="/tmp/war-deploy/"
    watchDir="/tmp/war-listen/"
    watchEnabled="false"/>
    
    
    將集群配置選項(xiàng)的注釋放開即可,如上。
    (3)重啟三個tomcat.到此tomcat的集群已配置完成