安装linux-jboss
JBOSS安装开始:
1。从本地上文件到系统下,我们要先建立install,thirdparty目录。
#mkdir install
#mkdir thirdparty
然后就上传文件到/usr/local/install/thirdparty/jboss-4.2.2.GA.zip下面。
2。要对文件进行解压缩
#unzip jboss-4.2.2.GA.zip 当然你也可以解压缩到你指定的目录下面去了。
3。要设置环境变量了
#vi /etc/profile
然后在文件加入下面信息:
JBOSS_HOME=/usr/local/install/thirdparty/jboss-4.2.2.GA
PATH=$PATH:/usr/local/install/thirdparty/arm/2.95.3/bin
export JBOSS_HOME PATH
4。我们修改了文件,那么需要让他立即有效
# source /etc/profile
5。#echo $JBOSS_HOME 用来查看你的环境变量是不是输出了。
6。添加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"保存退出#cd $JBOSS_HOME/bin 进入到bin目录下用:
7.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地址
不过我在中间遇到了一个问题,也就是
1。用IP访问不了页面,但启动服务器的话是完全对的,这个问题让我大伤脑经。最后查下来原来是JBOSS启动下需要绑定IP。
解决:
#cd $JBOSS_HOME/bin 目录下去
#vi start.sh 编辑该文件,然后加入 nohup ./run.sh -Djboss.bind.address=服务的IP &
chmod a+x start.sh --赋予权限
./statr.sh
保存退出。运行JBOSS,好了,解决问题。
2.修改 jboss_init_redhat.sh
cp /usr/server/jboss-5/bin/jboss_init_redhat.sh /etc/rc.d/init.d/jboss
vi /etc/rc.d/init.d/jboss
修改对应的java_home,path,jboss_home.
修改对应的启动用户,
为了使jboss适应所有ip,在文件开头加
JBOSS_HOST=${JBOSS_HOST:-"0.0.0.0"}
修改rc.local
vi /etc/rc.d/rc.local
/etc/rc.d/init.d/jboss start
5.JBoss默认:
日志目录/usr/local/JBoss/server/default/log/
主配置文件/usr/local/JBoss/server/default/deploy/JBossweb-tomcat50.sar/sever.xml
页面程序目录/usr/local/JBoss/server/default/deploy/JBossweb-tomcat50.sar/ROOT.war/
数据库连接池配置文件/usr/local/JBoss/server/default/deploy/hsqldb-ds.xml
PS1:JBoss提供了3种服务器配置:
1)minimal:最小配置,仅仅包括日志,jndi服务和url部署扫描器,你可能会在一个不需要j2ee的应用中使用这种配置,或者以该配置为基础自定义配置。
2)default:缺省配置,包括除了rmi/iiop和集群的所有j2ee服务。
3)all:这种配置包括所有的JBoss服务。
PS2:数据库连接池配:
下面我以MYSQL数据库为例,把JBoss的默认数据库切换到MYSQL下面。
1、下载MySql的Driver,并复制到$JBoss_DISC/server/default/lib下面。
2、必须把$JBoss_DISC/server/default/deploy下面的hsqldb-ds.xml删除,增加一个mysql-ds.xml文件,并包括一下内容:
xml version="1.0" encoding="UTF-8"?>
<datasources>
<local-tx-datasource>
<jndi-name>DefaultDSjndi-name>
<connection-url>jdbc:mysql://localhost:3306/testconnection-url>
<driver-class>com.mysql.jdbc.Driverdriver-class>
<user-name>testuser-name>
<password>testpassword>
local-tx-datasource>
datasources>
这里的数据库名、用户名、密码都用test代替。你需要修改成实际的名称。其实这里的hsqldb-ds.xml不是一定要删除的,只要JNDI NAME中的默认名DefaultDS不发生冲突就行了。
3、在$JBoss_DISC/server/default/deploy/jms下面用mysql-jdbc2-service.xml替换掉hsql-jdbc2-service.xml。把其中的DefaultDS修改成MySqlDS。这个文件负责Message Quene的持久存储。
4、如果要使用CMP功能,你有两种方法修改:把JBosscmp-jdbc.xml增加到EJB的部署单元中或者修改$JBoss_DISC/server/default/conf/standardJBosscmp-jdbc.xml,编辑文件把元素datasource-mapping改成mySQL,象下面这样:
<jbosscmo-jdbc>
<defaults>
<datasource>java:/DefaultDSdatasource>
<datasource-mapping>mySQLdatasource-mapping>
linux下安装JBoss第二种方法比较简单,因为你不需要把应用程序重新打包,缺点就是必须重新启动JBoss。
好了,linux下安装JBoss完成,现在重新启动JBoss,就工作在MYSQL数据库下了。
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的简单群集配置完毕。水平有限,错误之处请谅解。也希望大家的完善。