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

antcorps發表於2008-06-24

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

[@more@]

一、tomcat叢集實現
1.1、下載tomcat5和jdk1.5(IBM java5),下載地址分別為:

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 的成員。
如果在不同的機器上就不需要修改了
新增虛擬主機並增加虛擬目錄
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
xmlns:xsi=""
xsi:schemaLocation=" " version="2.4">

test



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

1.7、測試 Tomcat 叢集和 Session 複製的是否工作
首先啟動tomcat
在 IE 中開啟第一個例項中的 test (地址 :8070/test),在 Form 裡隨便設定一個 Session 屬性,
如 MyName = foo 將 IE 位址列中的地址修改為第二個例項中的 test(地址 :8090/test),重新整理,
就可以看到注意到 SessionID 不變, MyName 的屬性值已有了 同樣,如果在第二例項中設定的值,在第一個例項的頁面中也能看到
注意:必須在同一個 IE 視窗中進行如上測試,以保證是同一個 Session ,如果是兩個視窗,則 Session 可能不同,也互相看不到
Session 複製的結果。

二、負載均衡實現
2.1、下載並安裝IBM的gcc安裝包
下載地址為:
下載的包為:
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包
下載地址分別為:
我選的為 httpd-2.2.6.tar.gz
我選的為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 地址

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


Order deny,allow
Deny from all

DirectoryIndex index.html,index.jsp #新增索引檔案

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

NameVirtualHost *:80 新增虛擬主機


ServerAdmin
DocumentRoot /var/www/test
ServerName (自己取的域名,沒有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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章