天天看點

AIX上apache+tomcat5.5.26負載均衡實作完全手冊(單機)

AIX上apache+tomcat5.5.26負載均衡實作完全手冊(單機)

[@[email protected]]

一、tomcat叢集實作

1.1、下載下傳tomcat5和jdk1.5(IBM java5),下載下傳位址分别為:

http://tomcat.apache.org/download-55.cgi

http://www-128.ibm.com/developerworks/java/jdk/aix/service.html

1.2、安裝JDK

cd /u01/tomcat5.5.26

tar -xvf Java5.sdk.tar 解壓後産生Java5.sdk

smitty install 選擇安裝路徑,此處不贅述了,"ACCEPT new license agreements? "修改為yes,否則安裝報錯。

vi /etc/environment 修改PATH變量,添加JAVA_HOME變量如下:

PATH=/usr/bin:/etc:/usr/sbin:/usr/ucb:/usr/bin/X11:/sbin:/usr/java5/jre/bin:/usr/java5/bin

JAVA_HOME=/usr/java5

為了使變量生效,登出系統後再登入

1.3、安裝tomcat5.5.26

cd /u01/tomcat5.5.26

gunzip apache-tomcat-5.5.26.tar.gz

tar -xvf apache-tomcat-5.5.26.tar

将apache-tomcat-5.5.26檔案夾拷貝到/u01/tomcat5目錄

對使用tomcat的使用者增加環境變量

vi .profile

export JAVA_HOME=/usr/java5

export CATALINA_HOME=/u01/tomcat5

儲存後使其生效,可以直接執行

export JAVA_HOME=/usr/java5

export CATALINA_HOME=/u01/tomcat5

1.4、啟動tomcat

cd /u01/tomcat5/bin

./startup.sh 啟動tomcat

.shutdown.sh 關閉tomcat

另一個tomcat的安裝一樣,安裝路徑為 :/u01/tomcat5b

1.5、使 Tomcat 叢集配置生效并添加虛拟主機

修改 Tomcat配置檔案confserver.xml ,把Cluster參數前後的注釋符(<!-- 和 --&gt)删除,并儲存,這樣叢集就已經實作

修改

修改

如果是在一台機器上做實驗,把其中一個tomcat配置檔案的的 Server/Service/AJP Connector 的端口更改,以避免和第一個沖突,修改端口為

(8015/8025,8070/8090,8019/8029)

同時修改 Cluster/Receiver 結點的 tcpListenPort 端口(此端口用于 Session 複制),以避免和第一個沖突(4001 -> 4002)

注:Tomcat Cluster 預設使用多點傳播來建立成員關系,即兩個執行個體的多點傳播的位址和端口一樣,就可以互相認為是同一個 Cluster 的成員。

如果在不同的機器上就不需要修改了

添加虛拟主機并增加虛拟目錄

www.test.com" appBase="webapps" 其中webapps對應到/var/www,test為某個WEB釋出的根目錄

unpackWARs="true" autoDeploy="true"

xmlValidation="false" xmlNamespaceAware="false">

虛拟目錄增加

這樣就可以通過通路域名直接通路index.jsp了,通路時就不需要再在域名後加test了

1.6、寫一個簡單Web應用,能顯示和設定 Session 屬性值,以供測試

如果有開發工具,建立一個 Web App ,假設為 test (已經生成WAR包,将該目錄下的WAR直接使用就可以了)

新增 index.jsp ,加入如下代碼:

Cluster App Test

Server Info:

out.println("

ID " + session.getId());

// 如果有新的 Session 屬性設定

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);

}

%>

名稱:

值:

以上代碼主要是顯示伺服器資訊和 Session 值,并包含一個 Form ,可以随時建立一個 Session 屬性值

修改此用應用的 Web.xml ,加入 distributable 屬性,表示 Tomcat 要為此 Web 應用複制 Session

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">

test

最好生成war包,其他方式也可以,不過我感覺還是war包比較好

1.7、測試 Tomcat 叢集和 Session 複制的是否工作

首先啟動tomcat

在 IE 中打開第一個執行個體中的 test (http://IP位址 :8070/test),在 Form 裡随便設定一個 Session 屬性,

如 MyName = foo 将 IE 位址欄中的位址修改為第二個執行個體中的 test(http://IP位址 :8090/test),重新整理,

就可以看到注意到 SessionID 不變, MyName 的屬性值已有了 同樣,如果在第二執行個體中設定的值,在第一個執行個體的頁面中也能看到

注意:必須在同一個 IE 視窗中進行如上測試,以保證是同一個 Session ,如果是兩個視窗,則 Session 可能不同,也互相看不到

Session 複制的結果。

二、負載均衡實作

2.1、下載下傳并安裝IBM的gcc安裝包

下載下傳位址為:http://www-03.ibm.com/systems/p/os/aix/linux/toolbox/download.html

下載下傳的包為:

gcc-4.2.0-3.aix5.3.ppc.rpm

gcc-cplusplus-4.2.0-3.aix5.3.ppc.rpm

libgcc-4.2.0-3.aix5.3.ppc.rpm

libstdcplusplus-4.2.0-3.aix5.3.ppc.rpm

libstdcplusplus-devel-4.2.0-3.aix5.3.ppc.rpm

安裝GCC

rpm -ivh gcc-4.2.0-3.aix5.3.ppc.rpm

rpm -ivh libgcc-4.2.0-3.aix5.3.ppc.rpm

2.2、下載下傳APACHE,JK包

下載下傳位址分别為:

http://archive.apache.org/dist/httpd/ 我選的為 httpd-2.2.6.tar.gz

http://tomcat.apache.org/download-connectors.cgi 我選的為JK 1.2.26 Source Release tar.gz

2.3、安裝apache

tar xvfz httpd-2.2.6.tar.gz

cd httpd-2.2.6

./configure --prefix=/usr/local/apache2 --enable-module=so

make

make install

2.4、配置apache

vi /usr/local/apache2/conf/httpd.conf

在Load mod_jk 下面添加

Include conf/mod_jk.conf /或者直接将該檔案裡面的内容寫入該配置檔案

找到下面的參數進行修改

ServerName www.test.com:80/IP位址

DocumentRoot /var/www/test(WEB釋出所放的路徑)

Order deny,allow

Deny from all

DirectoryIndex index.html,index.jsp #添加索引檔案

User weblogic

Group weblogic 這些都改為WEB使用者的擁有者

NameVirtualHost *:80 添加虛拟主機

ServerAdmin [email protected]

DocumentRoot /var/www/test

ServerName www.hehehe.com (自己取的域名,沒有DNS解析,可通過本地電腦來設定)

DirectoryIndex index.html,index.jsp

JkMount /*.jsp loadbalancer

JkMount /*.do loadbalancer

JkMount /*Servlet loadbalancer

這是添加具體的虛拟主機

2.5、生成conf/mod_jk.conf和workers.properties檔案

conf/mod_jk.conf的内容如下:

LoadModule jk_module modules/mod_jk.so

JkWorkersFile conf/workers.properties

JkLogFile logs/mod_jk.log

JkLogLevel info

workers.properties檔案内容如下:

worker.list=loadbalancer

worker.loadbalancer.type=lb

worker.loadbalancer.balanced_workers=tomcat1, tomcat2

# Set properties for tomcat1 (ajp13)

worker.tomcat1.type=ajp13

worker.tomcat1.host=localhost

worker.tomcat1.port=8019

worker.tomcat1.lbfactor=50

# Set properties for tomcat2 (ajp13)

worker.tomcat2.type=ajp13

worker.tomcat2.host=localhost

worker.tomcat2.port=8029

worker.tomcat2.lbfactor=50

其中各參數值根據自己的實際情況來調整

2.6、安裝mod_JK

tar zxvf tomcat-connectors-1.2.26-src.tar.gz

cd tomcat-connectors-1.2.26-src/native

./buildconf.sh

./configure --with-apxs=/usr/local/apache2/bin/apxs

make

make install

./libtool --finish /usr/local/apache2/modules

将生成的native/apache-2.0/mod_jk.so 拷貝到/usr/local/apache2/modules檔案夾中(好象自動拷貝過去了)

2.7、啟動各TOMCAT啟動apache

$CATALINA_HOME/bin/startup.sh(這裡要啟動兩個tomcat)

/usr/local/apache2/bin/apachectl start

2.8、測試負載均衡

停用一個tomcat後,輸入域名一直重新整理

停用兩個tomcat後 ,輸入域名一直重新整理

自己看現象,嘿嘿

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/20444553/viewspace-1006034/,如需轉載,請注明出處,否則将追究法律責任。

轉載于:http://blog.itpub.net/20444553/viewspace-1006034/