Knight of the round table

wansong

Redhat上安装JBoss及其群集

转载: http://xudayu.blog.51cto.com/187984/64842

1 安装前的准备

1.1 应用软件

 
软件
版本
介质包
所属
对应操作系统
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可以运行在任何支持JAVA的平台上。
 
1.2 下的命令

1.2.1 常用的文本编辑器命令

命令
操作的含义
vi 文件名
打开对应的文件
a
从命令模式切换到输入模式
Esc
输入模式切换到命令模式
:
末行模式(esc之后,在此时可以输入命令)
:w
保存
:wq
保存并退出
:q!
不保存强制退出
:wq!
保存并强制退出
:set nu
显示行号
:数字
定位到数字所在的行

1.2.2 安装过程中用到的命令

命令
操作的含义
ssh IP
登录一台Linux系统的计算机并进行操作
groupadd
创建用户组
useradd –g 组名 用户名
创建用户到组
passwd 用户名
为新用户创建密码
exit
退出当前命令窗口
chmod XXX 文件名
修改文件权限
ls
查看当前目录下的文件
unzip
解压zip格式的压缩包

1.2.3 使用的省略词含义

 命令  操作的含义
 JBOSS_HOME  JBoss的安装路径
 YOURAPP  应用程序包名称
 JAVA_HOME  JDK安装路径
 APACHE_HOME  Apache软件的安装路径

2 安装与环境配置

2.1 创建用户

[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
 

2.2 使用用户登录系统

Type `help' to learn how to use Xshell prompt.
Xshell:\> ssh 192.168.200.151
 
 
 

2.3 使用用户上传软件

 
 
查看上传文件结果:
[jboss@node1 ~]$ ls
jdk-1_5_0_14-linux-i586.bin         jboss-4.0.5.GA.zip

2.4 安装修改JDK文件的权限,使其执行,并安装(ctrl+c跳过版本说明,键入yes进行jdk安装

       [jboss@node1 ~]$ chmod 755 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"保存退出

 

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地址
 

3 JBoss集群安装

3.1 Apache安装

3.1.1 使用Redhat系统自带的apache服务(建议使用)

启动:
[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
 

3.1.2 自己安装Apache

[url]http://httpd.apache.org/[/url] 网站下载Apache2.x.x版本的源码包。
[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
注:PREFIXApache指定的安装路径。默认的路径的为/usr/local/apache2
(本人对Apache也不熟悉,但这样基本上可以正常工作了)

3.2 mod_jk编译

3.2.1 使用系统Apachemod_jk选用

[url]http://www.apache.org/dist/tomcat/tomcat-connectors/jk/source/[/url]
网站下载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

注:PREFIX 为系统Apache服务的apxs路径,每个linux系统不一样,你可以用whereis apxs搜索一下。

3.2.3 使用自己安装Apachemod_jk选用

可以从[url]http://www.apache.org/dist/jakarta/tomcat-connectors/[/url]
jk/binaries/
下载对应操作系统的mod_jk 1.2.x 的二进制版本。



3.3 配置Apache装载mod_jk

修改 APACHE_HOME/conf/httpd.conf 文件:

[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
<Location /jkstatus/>
  JkMount status
  Order deny,allow
Deny from all
Allow from 127.0.0.1
</Location>
 
 
创建一个名字为APACHE_HOME/conf/uriworkermap.properties的文件,并增加如下内容:
# Simple worker configuration file
# Mount the Servlet context to the ajp13 worker
/jmx-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
# 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复制到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为节点名,与前面mod_jk那里的workers.properties里的节点对应-->

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 配置应用集群
Session复制:
修改文件,文件的开头增加<?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>
 
配置复制模式:
增加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 集群下的应用程序部署及卸载
集群里有个服务,即热部署应用归档文件例如包或是包。不是文件夹后面加个".war"的那种)。
    将你的应用程序打好等归档文件包放到集群中任意一台文件夹中,会自动的复制此应用归档文件到集群中的其他节点并完成部署。
    在运行的集群服务中,从任何一个节点的目录下删除应用,应用程序首先从本地卸载,然后再从集群中其他服务节点的目录删除应用。
3.6 其他
    上面所做的配置和修改都是使用做前端负载的方式,如果使用其他硬件产品做前端负载(如:),则不需要修改,只需使用启动即可。同时,不管哪种方式,都是要在同一个网段中(如:)。
 
好了,到此jboss的简单群集配置完毕。水平有限,错误之处请谅解。也希望大家的完善。
 


/jmx-console/*=loadbalancer
/web-console=loadbalancer
/web-console/*=loadbalancer
 








posted on 2011-08-07 15:28 w@ns0ng 阅读(1029) 评论(0)  编辑  收藏 所属分类: jbossLinux


只有注册用户登录后才能发表评论。


网站导航: