天天看點

Redhat上安裝JBoss及其群集

<b>軟體</b>

<b>版本</b>

<b>媒體包</b>

<b>所屬</b>

<b>對應作業系統</b>

JBoss

4.0.5.GA

jboss-4.0.5.GA.zip

Redhat

Linux,Windows

JDK

1.4.2_16

j2sdk-1_4_2_16-

linux-i586.bin

Sun

Linux(IA64硬體除外)

<b>注:1. IA64的硬體需要IA64版本的JDK。</b>

※   在linux下,JDK為j2sdk-1_4_2_16-linux-ia64.bin;

※   在Windows下,JDK為j2sdk-1_4_2_16-windows-ia64.exe。

    <b>2. JBoss</b><b>可以運作在任何支援JAVA的平台上。</b>

<b>指令</b>

<b>操作的含義</b>

vi 檔案名

打開對應的檔案

a

從指令模式切換到輸入模式

Esc

輸入模式切換到指令模式

:

末行模式(esc之後,在此時可以輸入指令)

:w

儲存

:wq

儲存并退出

:q!

不儲存強制退出

:wq!

儲存并強制退出

:set nu

顯示行号

:數字

定位到數字所在的行

ssh IP

登入一台Linux系統的計算機并進行操作

groupadd

建立使用者組

useradd –g 組名 使用者名

建立使用者到組

passwd 使用者名

為新使用者建立密碼

exit

退出目前指令視窗

chmod XXX 檔案名

修改檔案權限

ls

檢視目前目錄下的檔案

unzip

解壓zip格式的壓縮包

[root@node1 ~]# useradd jboss 

[root@node1 ~]# passwd jboss 

Changing password for user jboss. 

New UNIX password:  

BAD PASSWORD: it is too short 

Retype new UNIX password:  

passwd: all authentication tokens updated successfully. 

[root@node1 ~]#exit

Type `help' to learn how to use Xshell prompt. 

Xshell:\&gt; ssh 192.168.200.151

u  檢視上傳檔案結果:

[jboss@node1 ~]$ ls 

jdk-1_5_0_14-linux-i586.bin         jboss-4.0.5.GA.zip

       [jboss@node1 ~]$ chmod 755 jdk-1_5_0_14-linux-i586.bin 

[jboss@node1 ~]$ ./jdk-1_5_0_14-linux-i586.bin

[jboss@node1 ~]$ unzip jboss-4.0.5.GA.zip 

[jboss@node1 ~]$ vi JBOSS_HOME/bin/run.conf

添加JAVA_HOME,查找并将紅色一行

30 # be defined to $JAVA_HOME/bin/java, else $JAVA will be "java". 

31 # 

32 #JAVA_HOME="/opt/java/jdk"

替換成

32 JAVA_HOME="/home/jboss/jdk1.5.0_14" //你的JDK安裝路徑

使用":wq"儲存退出

視窗啟動方式及背景啟動方式(事實上,這種啟動是預設執行了一個啟動參數run.sh -c default,在JBOSS_HOME/server/中,有jboss的三種配置:all,default,minimal。你也可以自己複制其中的檔案夾,命名為自己的服務,如:myserver,啟動的時候隻需要run.sh -c myserver就行了。):

[jboss@node1 ~]$ JBOSS_HOME/bin/run.sh //啟動後此視窗不能再做他用 

[jboss@node1 ~]$ JBOSS_HOME/bin/run.sh &amp; //啟動後此視窗還可繼續進行其他操作

視窗啟動方式及背景啟動方式的關閉:

視窗啟動方式的,在此視窗直接按“Ctrl+C”就行了

[jboss@node1 ~]$ JBOSS_HOME/bin/shutdown.sh -S //背景啟動方式的關閉

注意:上面所說的JBoss4.0.5.GA的運作與關閉方式,由于JBoss的後續版本(4.2.0GA+)做了安全修改,不像JBoss4.0.5.GA那樣,預設就是啟動了全局暴露(就是外IP都可以通路),而是需要增加一個啟動參數,才能被外IP通路,是以啟動指令變成:

[jboss@node1 ~]$ JBOSS_HOME/bin/run.sh -b 你的IP位址 //暴露此IP上的jboss服務,如果一個機器上有2以上的ip呢?如下指令,暴露所有ip上的jboss服務

[jboss@node1 ~]$ JBOSS_HOME/bin/run.sh -b 0.0.0.0

随之關閉命名也就變成:

[jboss@node1 ~]$ JBOSS_HOME/bin/shutdown.sh -S -s 你的IP位址

啟動:

[root@node1 ~]$ service httpd start

關閉:

[root@node1 ~]$ service httpd stop

重新啟動:

[root@node1 ~]$ service httpd restart

狀态:

[root@node1 ~]$ service httpd status

設定随系統啟動:

[root@node1 ~]$ chkconfig –level 345 httpd on

[root@node1 ~]$ tar zxvf httpd-2.0.54.tar.gz  //解壓

[root@node1 ~]$cd httpd-2.0.54 

[root@node1 httpd-2.0.54]$./configure --enable-MODULE=shared --enable-so  --with-mpm=worker –prefix=PREFIX  //編譯

[root@node1 httpd-2.0.54]$ make 

[root@node1 httpd-2.0.54]$ make install

注:PREFIX為Apache指定的安裝路徑。預設的路徑的為/usr/local/apache2

(本人對Apache也不熟悉,但這樣基本上可以正常工作了)

[root@node1 ~]$ tar zxvf tomcat-connectors-1.2.23-src.tar.gz 

[root@node1 ~]$cd tomcat-connectors-1.2.23-src 

[root@node1 tomcat-connectors-1.2.23-src]$./configure --with-apxs=PREFIX/apxs 

[root@node1~]$ make 

注:PREFIX 為系統Apache服務的apxs路徑,每個linux系統不一樣,你可以用whereis apxs搜尋一下。

[root@node1 ~]$vi /etc/httpd/conf/httpd.conf 

在檔案的末尾添加一行,儲存退出:

# Include mod_jk's specific configuration file 

Include conf/mod-jk.conf 

建立一個名字為APACHE_HOME/conf/mod-jk.conf的檔案,并增加如下内容:

# Load mod_jk module 

# Specify the filename of the mod_jk lib 

LoadModule jk_module modules/mod_jk.so 

# Where to find workers.properties 

JkWorkersFile conf/workers.properties 

# Where to put jk logs 

JkLogFile logs/mod_jk.log 

# Set the jk log level [debug/error/info]  

JkLogLevel info 

# Select the log format 

JkLogStampFormat    "[%a %b %d %H:%M:%S %Y]" 

# JkOptions indicates to send SSK KEY SIZE 

JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories 

# JkRequestLogFormat 

JkRequestLogFormat "%w %V %T" 

# Mount your applications 

JkMount /application/* loadbalancer 

# You can use external file for mount points. 

# It will be checked for updates each 60 seconds. 

# The format of the file is: /url=worker 

# /examples/*=loadbalancer 

JkMountFile conf/uriworkermap.properties 

# Add shared memory. 

# This directive is present with 1.2.10 and 

# later versions of mod_jk, and is needed for 

# for load balancing to work properly 

JkShmFile logs/jk.shm 

# Add jkstatus for managing runtime data 

&lt;Location /jkstatus/&gt; 

  JkMount status 

  Order deny,allow 

Deny from all 

Allow from 127.0.0.1 

&lt;/Location&gt;

建立一個名字為APACHE_HOME/conf/uriworkermap.properties的檔案,并增加如下内容:

# Simple worker configuration file 

# Mount the Servlet context to the ajp13 worker 

/jmx-console=loadbalancer 

/jmx-console/*=loadbalancer 

/web-console=loadbalancer 

/web-console/*=loadbalancer

建立一個名字為APACHE_HOME/conf/workers.properties的檔案,并增加如下内容:

# Define list of workers that will be used 

# for mapping requests 

worker.list=loadbalancer,status 

# Define Node1 

# modify the host as your host IP or DNS name. 

worker.node1.port=8009 

worker.node1.host=node1.mydomain.com 

worker.node1.type=ajp13 

worker.node1.lbfactor=1 

worker.node1.cachesize=10 

# Define Node2 

worker.node2.port=8009 

worker.node2.host=node2.mydomain.com 

worker.node2.type=ajp13 

worker.node2.lbfactor=1 

worker.node2.cachesize=10 

# Load-balancing behaviour  

worker.loadbalancer.type=lb 

worker.loadbalancer.balance_workers=node1,node2  

worker.loadbalancer.sticky_session=1 

#worker.list=loadbalancer 

# Status worker for managing load balancer  

worker.status.type=status

    将前面編譯過的mod_jk.so和下載下傳的mod_jk.so複制到APACHE_HOME/modules檔案夾下。其中,mod_jk.so的名字要與mod-jk.conf檔案中的

“LoadModule jk_module modules/mod_jk.so”相同。

&lt;Engine name="jboss.web" defaultHost="localhost"&gt;  

... ...  

&lt;/Engine&gt;  

為  

&lt;Engine name="jboss.web" defaultHost="localhost"

jvmRoute="node1"&gt;  

&lt;!--其中,node1為節點名,與前面mod_jk那裡的workers.properties裡的節點對應--&gt;

3.3.2 激活mod_jk

編輯JBOSS_HOME/server/all/deploy/jbossweb-tomcat50.sar/META-INF/

jboss-service.xml檔案:

&lt;attribute name="UseJK"&gt;fasle&lt;/attribute&gt;  

&lt;!--改為 --&gt; 

&lt;attribute name="UseJK"&gt;true&lt;/attribute&gt;

3.3.3 配置應用叢集

Session複制:

修改YOURAPP/WEB-INF/web.xml檔案,在web.xml檔案的開頭增加distributable:

&lt;?xml version="1.0"?&gt;  

&lt;web-app    [url]http://java.sun.com/xml/ns/j2ee=[/url]"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  

[url]http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd[/url]"  

version="2.4"&gt;  

&lt;distributable/&gt;  

&lt;!-- ... --&gt;  

&lt;/web-app&gt;

配置Session複制模式:

增加YOURAPP/WEB-INF/jboss-web.xml檔案,添加如下内容(這都是預設,具體的要根據你的應用、運作環境來配置,可參考《JBoss企業級應用服務平台群集指南》的英文官方文檔):

&lt;jboss-web&gt;  

&lt;replication-config&gt;  

&lt;replication-trigger&gt;SET_AND_NON_PRIMITIVE_GET&lt;/replication-trigger&gt;  

&lt;replication-granularity&gt;SESSION&lt;/replication-granularity&gt;  

&lt;replication-field-batch-mode&gt;true&lt;/replication-field-batch-mode&gt;  

&lt;/replication-config&gt;  

&lt;/jboss-web&gt;

3.4 JBoss叢集的啟動與關閉

與前面的單個jboss啟動和關閉一樣,隻是在啟動指令裡的把default換成了all:

[jboss@node1 ~]$ JBOSS_HOME/bin/run.sh -c all

        JBoss叢集裡有個farming服務,即熱部署應用歸檔檔案 (例如, EAR包, WAR 包或是 SAR 包。不是檔案夾後面加個".war"的那種)。

    将你的應用程式打好EAR等歸檔檔案包放到叢集中任意一台JBoss的 [JBOSS_HOME/server/all/farm]檔案夾中, JBoss會自動的複制此應用歸檔檔案到叢集中的其他節點并完成部署。

    在運作的JBoss叢集服務中,從任何一個節點的farm/ 目錄下删除應用,應用程式首先從本地解除安裝,然後再從叢集中其他服務節點的farm目錄删除應用。

3.6 其他

    上面所做的配置和修改都是使用Apache做前端HTTP負載的方式,如果使用其他硬體産品做前端負載(如:F5),則JBoss不需要修改,隻需使用[JBOSS_HOME/bin/run.sh –c all]啟動即可。同時,不管哪種方式,JBoss都是要在同一個網段中(如:192.168.1.*)。

好了,到此jboss的簡單群集配置完畢。水準有限,錯誤之處請諒解。也希望大家的完善。

本文轉自xudayu 51CTO部落格,原文連結:http://blog.51cto.com/xudayu/64842,如需轉載請自行聯系原作者