Redhat上安裝JBoss及其群集
1.1 應(yīng)用軟件
軟件 |
版本 |
介質(zhì)包 |
所屬 |
對應(yīng)操作系統(tǒng) |
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硬件除外) |
注:1. IA64的硬件需要IA64版本的JDK。
※ 在linux下,JDK為j2sdk-1_4_2_16-linux-ia64.bin;
※ 在Windows下,JDK為j2sdk-1_4_2_16-windows-ia64.exe。
2. JBoss可以運(yùn)行在任何支持JAVA的平臺上。
1.2 下的命令
1.2.1 常用的文本編輯器命令
命令 |
操作的含義 |
vi 文件名 |
打開對應(yīng)的文件 |
a |
從命令模式切換到輸入模式 |
Esc |
輸入模式切換到命令模式 |
: |
末行模式(esc之后,在此時可以輸入命令) |
:w |
保存 |
:wq |
保存并退出 |
:q! |
不保存強(qiáng)制退出 |
:wq! |
保存并強(qiáng)制退出 |
:set nu |
顯示行號 |
:數(shù)字 |
定位到數(shù)字所在的行 |
1.2.2 安裝過程中用到的命令
命令 |
操作的含義 |
ssh IP |
登錄一臺Linux系統(tǒng)的計(jì)算機(jī)并進(jìn)行操作 |
groupadd |
創(chuàng)建用戶組 |
useradd –g 組名 用戶名 |
創(chuàng)建用戶到組 |
passwd 用戶名 |
為新用戶創(chuàng)建密碼 |
exit |
退出當(dāng)前命令窗口 |
chmod XXX 文件名 |
修改文件權(quán)限 |
ls |
查看當(dāng)前目錄下的文件 |
unzip |
解壓zip格式的壓縮包 |
1.2.3 使用的省略詞含義
命令 | 操作的含義 |
JBOSS_HOME | JBoss的安裝路徑 |
YOURAPP | 應(yīng)用程序包名稱 |
JAVA_HOME | JDK安裝路徑 |
APACHE_HOME | Apache軟件的安裝路徑 |
2 安裝與環(huán)境配置
2.1 創(chuàng)建用戶
[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
[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
2.2 使用用戶登錄系統(tǒng)
Type `help' to learn how to use Xshell prompt.
Xshell:\> ssh 192.168.200.151
Xshell:\> ssh 192.168.200.151


2.3 使用用戶上傳軟件


u 查看上傳文件結(jié)果:
[jboss@node1 ~]$ ls
jdk-1_5_0_14-linux-i586.bin jboss-4.0.5.GA.zip
jdk-1_5_0_14-linux-i586.bin jboss-4.0.5.GA.zip
2.4 安裝修改JDK文件的權(quán)限,使其執(zhí)行,并安裝(ctrl+c跳過版本說明,鍵入yes進(jìn)行jdk安裝)
[jboss@node1 ~]$ chmod 755 jdk-1_5_0_14-linux-i586.bin
[jboss@node1 ~]$ ./jdk-1_5_0_14-linux-i586.bin
[jboss@node1 ~]$ ./jdk-1_5_0_14-linux-i586.bin
2.5 安裝[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"
替換成
30 # be defined to $JAVA_HOME/bin/java, else $JAVA will be "java".
31 #
32 JAVA_HOME="/home/jboss/jdk1.5.0_14" //你的JDK安裝路徑
使用":wq"保存退出
30 # be defined to $JAVA_HOME/bin/java, else $JAVA will be "java".
31 #
32 #JAVA_HOME="/opt/java/jdk"
31 #
32 #JAVA_HOME="/opt/java/jdk"
30 # be defined to $JAVA_HOME/bin/java, else $JAVA will be "java".
31 #
32 JAVA_HOME="/home/jboss/jdk1.5.0_14" //你的JDK安裝路徑
31 #
32 JAVA_HOME="/home/jboss/jdk1.5.0_14" //你的JDK安裝路徑
2.6 JBoss的啟動和關(guān)閉
窗口啟動方式及后臺啟動方式(事實(shí)上,這種啟動是默認(rèn)執(zhí)行了一個啟動參數(shù)run.sh -c default,在JBOSS_HOME/server/中,有jboss的三種配置:all,default,minimal。你也可以自己復(fù)制其中的文件夾,命名為自己的服務(wù),如:myserver,啟動的時候只需要run.sh -c myserver就行了。):
[jboss@node1 ~]$ JBOSS_HOME/bin/run.sh //啟動后此窗口不能再做他用
[jboss@node1 ~]$ JBOSS_HOME/bin/run.sh & //啟動后此窗口還可繼續(xù)進(jìn)行其他操作
[jboss@node1 ~]$ JBOSS_HOME/bin/run.sh & //啟動后此窗口還可繼續(xù)進(jìn)行其他操作
窗口啟動方式及后臺啟動方式的關(guān)閉:
窗口啟動方式的,在此窗口直接按“Ctrl+C”就行了
[jboss@node1 ~]$ JBOSS_HOME/bin/shutdown.sh -S //后臺啟動方式的關(guān)閉
注意:上面所說的JBoss4.0.5.GA的運(yùn)行與關(guān)閉方式,由于JBoss的后續(xù)版本(4.2.0GA+)做了安全修改,不像JBoss4.0.5.GA那樣,默認(rèn)就是啟動了全局暴露(就是外IP都可以訪問),而是需要增加一個啟動參數(shù),才能被外IP訪問,因此啟動命令變成:
[jboss@node1 ~]$ JBOSS_HOME/bin/run.sh -b 你的IP地址 //暴露此IP上的jboss服務(wù),如果一個機(jī)器上有2以上的ip呢?如下命令,暴露所有ip上的jboss服務(wù)
[jboss@node1 ~]$ JBOSS_HOME/bin/run.sh -b 0.0.0.0
隨之關(guān)閉命名也就變成:
[jboss@node1 ~]$ JBOSS_HOME/bin/shutdown.sh -S -s 你的IP地址
3 JBoss集群安裝
3.1 Apache安裝
3.1.1 使用Redhat系統(tǒng)自帶的apache服務(wù)(建議使用)
啟動:
[root@node1 ~]$ service httpd start
關(guān)閉:
[root@node1 ~]$ service httpd stop
重新啟動:
[root@node1 ~]$ service httpd restart
狀態(tài):
[root@node1 ~]$ service httpd status
設(shè)置隨系統(tǒng)啟動:
[root@node1 ~]$ chkconfig –level 345 httpd on
3.1.2 自己安裝Apache
[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
[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指定的安裝路徑。默認(rèn)的路徑的為/usr/local/apache2
(本人對Apache也不熟悉,但這樣基本上可以正常工作了)
3.2 mod_jk編譯
3.2.1 使用系統(tǒng)Apache的mod_jk選用
去[url]http://www.apache.org/dist/tomcat/tomcat-connectors/jk/source/[/url]
網(wǎng)站下載mod_jk
3.2.2 編譯mod_jk
[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
[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
[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 為系統(tǒng)Apache服務(wù)的apxs路徑,每個linux系統(tǒng)不一樣,你可以用whereis apxs搜索一下。
3.2.3 使用自己安裝Apache的mod_jk選用
可以從[url]http://www.apache.org/dist/jakarta/tomcat-connectors/[/url]
jk/binaries/下載對應(yīng)操作系統(tǒng)的mod_jk 1.2.x 的二進(jìn)制版本。
jk/binaries/下載對應(yīng)操作系統(tǒng)的mod_jk 1.2.x 的二進(jìn)制版本。
3.3 配置Apache裝載mod_jk
修改 APACHE_HOME/conf/httpd.conf 文件:
[root@node1 ~]$vi /etc/httpd/conf/httpd.conf
[root@node1 ~]$vi /etc/httpd/conf/httpd.conf
在文件的末尾添加一行,保存退出:
# Include mod_jk's specific configuration file
Include conf/mod-jk.conf
Include conf/mod-jk.conf
創(chuàng)建一個名字為APACHE_HOME/conf/mod-jk.conf的文件,并增加如下內(nèi)容:
# 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
<Location /jkstatus/>
JkMount status
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Location>
# 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
<Location /jkstatus/>
JkMount status
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Location>
創(chuàng)建一個名字為APACHE_HOME/conf/uriworkermap.properties的文件,并增加如下內(nèi)容:
# Simple worker configuration file
# Mount the Servlet context to the ajp13 worker
/jmx-console=loadbalancer
/jmx-console/*=loadbalancer
/web-console=loadbalancer
/web-console/*=loadbalancer
# Mount the Servlet context to the ajp13 worker
/jmx-console=loadbalancer
創(chuàng)建一個名字為APACHE_HOME/conf/workers.properties的文件,并增加如下內(nèi)容:
# 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
# modify the host as your host IP or DNS name.
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
# 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
# modify the host as your host IP or DNS name.
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復(fù)制到APACHE_HOME/modules文件夾下。其中,mod_jk.so的名字要與mod-jk.conf文件中的
“LoadModule jk_module modules/mod_jk.so”相同。
3.3 集群配置
3.3.1 加入集群:
編輯JBOSS_HOME/server/all/deploy/jbossweb-tomcat50.sar/server.xml文件(在jboss中,all的配置就是集群配置,而jbossweb-tomcat50.sar是jboss4.0.5.GA的配置,在4.2.0+里是jboss-web.deployer):
<Engine name="jboss.web" defaultHost="localhost">
... ...
</Engine>
為
<Engine name="jboss.web" defaultHost="localhost"
jvmRoute="node1">
... ...
</Engine>
<!--其中,node1為節(jié)點(diǎn)名,與前面mod_jk那里的workers.properties里的節(jié)點(diǎn)對應(yīng)-->
<Engine name="jboss.web" defaultHost="localhost">
... ...
</Engine>
為
<Engine name="jboss.web" defaultHost="localhost"
... ...
</Engine>
為
<Engine name="jboss.web" defaultHost="localhost"
jvmRoute="node1">
... ...
</Engine>
<!--其中,node1為節(jié)點(diǎn)名,與前面mod_jk那里的workers.properties里的節(jié)點(diǎn)對應(yīng)-->
... ...
</Engine>
<!--其中,node1為節(jié)點(diǎn)名,與前面mod_jk那里的workers.properties里的節(jié)點(diǎn)對應(yīng)-->
3.3.2 激活編輯JBOSS_HOME/server/all/deploy/jbossweb-tomcat50.sar/META-INF/
jboss-service.xml文件:
<attribute name="UseJK">fasle</attribute>
<!--改為 -->
<attribute name="UseJK">true</attribute>
3.3.3 配置應(yīng)用集群
Session復(fù)制:
修改文件,在文件的開頭增加<?xml version="1.0"?>
<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">
<distributable/>
<!-- ... -->
</web-app>
配置復(fù)制模式:
增加jboss-web.xml文件,添加如下內(nèi)容(這都是默認(rèn),具體的要根據(jù)你的應(yīng)用、運(yùn)行環(huán)境來配置,可參考《JBoss企業(yè)級應(yīng)用服務(wù)平臺群集指南》的英文官方文檔):
<?xml version="1.0"?>
<jboss-web>
<replication-config>
<replication-trigger>SET_AND_NON_PRIMITIVE_GET</replication-trigger>
<replication-granularity>SESSION</replication-granularity>
<replication-field-batch-mode>true</replication-field-batch-mode>
</replication-config>
</jboss-web>
3.4 JBoss集群的啟動與關(guān)閉
與前面的單個jboss啟動和關(guān)閉一樣,只是在啟動命令里的把default換成了all:
[jboss@node1 ~]$ JBOSS_HOME/bin/run.sh -c all
3.5 集群下的應(yīng)用程序部署及卸載
集群里有個服務(wù),即熱部署應(yīng)用歸檔文件例如包包或是包。不是文件夾后面加個".war"的那種)。
將你的應(yīng)用程序打好等歸檔文件包放到集群中任意一臺的文件夾中,會自動的復(fù)制此應(yīng)用歸檔文件到集群中的其他節(jié)點(diǎn)并完成部署。
在運(yùn)行的集群服務(wù)中,從任何一個節(jié)點(diǎn)的目錄下刪除應(yīng)用,應(yīng)用程序首先從本地卸載,然后再從集群中其他服務(wù)節(jié)點(diǎn)的目錄刪除應(yīng)用。
3.6 其他
上面所做的配置和修改都是使用做前端負(fù)載的方式,如果使用其他硬件產(chǎn)品做前端負(fù)載(如:),則不需要修改,只需使用啟動即可。同時,不管哪種方式,都是要在同一個網(wǎng)段中(如:)。
好了,到此jboss的簡單群集配置完畢。水平有限,錯誤之處請諒解。也希望大家的完善。
jboss-service.xml文件:
<attribute name="UseJK">fasle</attribute>
<!--改為 -->
<attribute name="UseJK">true</attribute>
<!--改為 -->
<attribute name="UseJK">true</attribute>
<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">
<distributable/>
<!-- ... -->
</web-app>
<?xml version="1.0"?>
<jboss-web>
<replication-config>
<replication-trigger>SET_AND_NON_PRIMITIVE_GET</replication-trigger>
<replication-granularity>SESSION</replication-granularity>
<replication-field-batch-mode>true</replication-field-batch-mode>
</replication-config>
</jboss-web>
<jboss-web>
<replication-config>
<replication-trigger>SET_AND_NON_PRIMITIVE_GET</replication-trigger>
<replication-granularity>SESSION</replication-granularity>
<replication-field-batch-mode>true</replication-field-batch-mode>
</replication-config>
</jboss-web>
[jboss@node1 ~]$ JBOSS_HOME/bin/run.sh -c all
/jmx-console/*=loadbalancer
/web-console=loadbalancer
/web-console/*=loadbalancer
posted on 2011-08-07 15:28 w@ns0ng 閱讀(1036) 評論(0) 編輯 收藏 所屬分類: jboss 、Linux