安装JBoss

[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"保存退出

 2.6 JBoss的启动和关闭

窗口启动方式及后台启动方式(事实上,这种启动是默认执行了一个启动参数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 & //启动后此窗口还可继续进行其他操作

 窗口启动方式及后台启动方式的关闭:

窗口启动方式的,在此窗口直接按“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地址



JBoss集群配置

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为节点名,与前面mod_jk那里的workers.properties里的节点对应-->

3.3.2 激活mod_jk

编辑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 配置应用集群

Session复制:

修改YOURAPP/WEB-INF/web.xml文件,在web.xml文件的开头增加distributable:

<?xml version="1.0"?>  

<web-app    http://java.sun.com/xml/ns/j2ee="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">  

<distributable/>  

<!-- ... -->  

</web-app>

 配置Session复制模式:

增加YOURAPP/WEB-INF/jboss-web.xml文件,添加如下内容(这都是默认,具体的要根据你的应用、运行环境来配置,可参考《JBoss企业级应用服务平台群集指南》的英文官方文档):

<?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集群的启动与关闭

与前面的单个jboss启动和关闭一样,只是在启动命令里的把default换成了all:

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

 3.5 JBoss集群下的应用程序部署及卸载

        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的简单群集配置完毕。水平有限,错误之处请谅解。也希望大家的完善。