以6.3版本为例,下载地址 https://www.jboss.org/products/eap/download/,这个地址现在有问题了,下不了好像要redhat账号还要花钱?不知咋回事

下载完成后,解压到某个目录即可 (下面用jboss_home代替jboss根目录)

jboss as版本下载地址:http://jbossas.jboss.org/downloads/ (这个已经不维护了)

wildfly版本下载地址: http://wildfly.org/downloads/

一、认识jboss

1.首先认识目录结构:

----bin
----add-user.bat
----domain.bat
----standalone.bat
----domain
----configuration
----mgmt-users.properties
----domain.xml
----host.xml
----host-master.xml
----host-slave.xml
----data
----content
----servers
----server*
----data
----tmp //与standalone模式下的tmp类似
----standalone
----configuration
----mgmt-users.properties //add-user.bat添加的管理员用户保存在这
----standalone.xml
----deployments
----tmp
----vfs
----temp //war项目在这,6.0稍有不同
----deployment //war项目中lib目录下的jar包,6.0稍有不同
----work
----jboss.web
----default-host //war项目的jsp文件生成的java,class类在这,.vm还不知道有没有class文件生成,目前看不在
----welcome-content

2.配置文件详解

以standalone.xml为例,

<xml>
<server>
<extensions>
  <extension module="org.jboss.as.clustering.infinispan"/> //一个扩展是一个能扩展服务器功能的模块
</extensions> <system-properties> //可定义变量
</system-properties>
<management> //感觉是后台管理的配置
<security-realms>
   <security-realm name="ManagementRealm"> //管理角色和用户
<authentication>
<local default-user="$local"/>
<properties path="mgmt-users.properties" relative-to="jboss.server.config.dir"/>
</authentication>
   </security-realm>
  </security-realms>
    <management-interfaces>
   <native-interface security-realm="ManagementRealm"> //命令行管理接口
    <socket-binding native="management-native"/>
   </native-interface>
   <http-interface security-realm="ManagementRealm"> //http安全接口,应用安全配置和socket binding
    <socket-binding http="management-http"/>
   </http-interface>
  </management-interfaces>
</management> <profile>
<subsystem xmlns="urn:jboss:domain:cmp:1.0"/>  //一个子系统是使用一个扩展添加到服务器核心的一组功能,对应一个extension节点
<subsystem xmlns="urn:jboss:domain:web:1.1"  .....>  //web配置
</profile>
  <interfaces>
<interface name="public"> //对socket可以绑定到的一个物理接口、IP地址或者主机名的逻辑命名
<inet-address value="${jboss.bind.address:127.0.0.1}"/>
</interface>
</interfaces>
<socket-binding-group>
<socket-binding /> //是对一个socket命名的配置
</socket-binding-group>
</server>

3.域(domain)模式

jboss提供了二种运行模式:standalone(独立运行模式)、domain(域模式),日常开发中,使用standalone模式足已;但生产部署时,一个app,往往是部署在jboss集群环境中的,如果所有jboss server均采用standalone模式,会给运维带来极大的工作量,需要每台jboss server上逐一部署/更新,显然不适合。

domain模式正是为了解决这一问题,该模式下,所有jboss server可以划分成不同的group(注:这里的jboss server并不一定要对应某台物理机或虚拟机,一个os上,可以同时run多个jboss server实例,所以本文中的jboss server均指某个运行中的jboss server instance),每个group中可以包含多个jboss server,所有这些jboss server中,可以指定一台做为域控制器(domain controller),俗称master server,其它jboss server均为Home Controller(俗称slave server)。

master上可以控制所有jboss server,并监控其运行情况,部署应用时,一个war包,只需要部署到group上,该group中的所有jboss server即会同步自动部署。

上一张域的拓扑图:

二、配置域模式

1.在10.6.144.156机器上配置master,

先添加个管理员账号:add-user.bat/add-user.sh ,

用户名:slave155

记住控制台显示的<secret value="c2xhdmUxNTUuMTIz" />的字符串(c2xhdmUxNTUuMTIz为密码经过base64处理后的内容)

1.1.进入 "jboss_home/domain/configuration",打开host.xml

<interfaces>
<interface name="management">
<inet-address value="${jboss.bind.address.management:10.6.144.156}"/>
</interface>
<interface name="public">
<inet-address value="${jboss.bind.address:10.6.144.156}"/>
</interface>
<interface name="unsecure">
<!-- Used for IIOP sockets in the standard configuration.
To secure JacORB you need to setup SSL -->
<inet-address value="${jboss.bind.address.unsecure:10.6.144.156}"/>
</interface>
</interfaces>

将所有127.0.0.1的地址,换成master server对应的真实IP(否则,无法从远程通过浏览器,访问jboss 管理控制台)

1.2.启动,nohup jboss_home/bin/domain.sh &

1.3.进入master jboss 控制台http://10.6.144.156:9990/console/,使用前面创建的管理账号

1.4.创建group.server

至此,master已基本配置完成

2.配置slave,在10.6.144.155机器上

2.1.进入 "jboss_home/domain/configuration",将原来的host.xml改名备份,然后再将host-slave.xml复制一份,并改名为host.xml

2.2修改host.xml

a)

<interfaces>
<interface name="management">
<inet-address value="${jboss.bind.address.management:0.0.0.0}"/>
</interface>
<interface name="public">
<inet-address value="${jboss.bind.address:0.0.0.0}"/>
</interface>
<interface name="unsecure">
<!-- Used for IIOP sockets in the standard configuration.
To secure JacORB you need to setup SSL -->
<inet-address value="${jboss.bind.address.unsecure:0.0.0.0}"/>
</interface>
</interfaces>

原来的127.0.0.1,改成slave server的真实IP或0.0.0.0,否则slave上的应用,只能在slave本机访问

b)

<management-interfaces>
<native-interface security-realm="ManagementRealm">
<socket interface="management" port="${jboss.management.native.port:9099}"/>
</native-interface>
</management-interfaces>

这里的9999端口,改成其它不使用的端口(比如:9099),否则slave server上的9999端口,与master server上的管理端口冲突,最后启动时,会报错

c)

<domain-controller>
<remote host="${jboss.domain.master.address:172.21.129.181}" port="${jboss.domain.master.port:9999}" security-realm="ManagementRealm"/>
</domain-controller>

指定master server的IP(本文中为10.6.144.156),这样slave在启动时,才知道去连哪一台master

d)最开头的host节点上,加一个name="xxx"的属性(本文中为slave155),这个name值最终会显示在master server的jboss 控制台中,建议起一个容易识别的名称

<host name="slave155" xmlns="urn:jboss:domain:1.6">

安全认证

<server-identities>
<!-- Replace this with either a base64 password of your own, or use a vault with a vault expression -->
<secret value="c2xhdmUxNTUuMTIz" />
</server-identities>

注:slave启动时,需要连接注册到master的jboss中,连接过程需要安全认证,这里的secret相当于认证的钥匙,而认证的用户名即为:正在连接的slave机器上jboss中host.xml中<host name='xxx'>这个节点中的name值,所以一开始需要在master中创建一个名为“slave155”的管理员

2.3手动在slave上创建slave server,并加入到group8801(注:group的值,必须是在master server上创建过的,否则启动时,slave上的server无法正常加入到master相关的group中)

3.启动部署应用

依次以domain模式启动master、slave155 上的jboss,在http://10.6.144.156:9990/console/可以看到

进入部署界面,点击Add,添加一个war包,再Assign,分配到某一个group,即可自动部署到该group下所有server。如果想把一个app,部署到多个group,也没问题,再次点击assign,再分配到另一个group。

三、集群

Domain模式解决了统一管理多台jboss的问题,下面是如何利用mod_cluster来实现负载均衡、容错。

mod_cluster是jboss的一个开源集群模块(基于apache 2.2.x),官网地址为http://mod-cluster.jboss.org/, http://mod-cluster.jboss.org/downloads/1-2-6-Final-bin 这上面有各种OS的版本,

windows环境,应该下载http://downloads.jboss.org/mod_cluster//1.2.6.Final/windows/mod_cluster-1.2.6.Final-windows-amd64.zip 这个版本

linux环境,应该下载http://downloads.jboss.org/mod_cluster//1.2.6.Final/linux-x86_64/mod_cluster-1.2.6.Final-linux2-x64.tar.gz

解压到10.6.144.156机器上/opt/jboss目录下

3.1修改/opt/jboss/httpd/httpd/conf/httpd.cfg文件

mod_cluster部分,参考下面修改

<IfModule manager_module>
Listen 10.6.144.156:8836
ManagerBalancerName mycluster
<VirtualHost 10.6.144.156:8836>
<Location />
Order deny,allow
Allow from all
</Location> KeepAliveTimeout 300
MaxKeepAliveRequests 0
AdvertiseFrequency 5
EnableMCPMReceive #<Location /mod_cluster_manager>
<Location /cluster>
SetHandler mod_cluster-manager
Order deny,allow
Allow from all
</Location> </VirtualHost>
</IfModule>

主要是把127.0.0.1,改成master server对应的真实IP,另外把Deny from all注释掉,把紧贴着的一行改成Allow from all,去掉这些访问上的限制

下面是完整的http.conf参考内容:

 ServerRoot "/opt/jboss/httpd/httpd"
Listen
LoadModule authn_file_module /opt/jboss/httpd/lib/httpd/modules/mod_authn_file.so
LoadModule authn_dbm_module /opt/jboss/httpd/lib/httpd/modules/mod_authn_dbm.so
LoadModule authn_anon_module /opt/jboss/httpd/lib/httpd/modules/mod_authn_anon.so
LoadModule authn_dbd_module /opt/jboss/httpd/lib/httpd/modules/mod_authn_dbd.so
LoadModule authn_default_module /opt/jboss/httpd/lib/httpd/modules/mod_authn_default.so
LoadModule authn_alias_module /opt/jboss/httpd/lib/httpd/modules/mod_authn_alias.so
LoadModule authz_host_module /opt/jboss/httpd/lib/httpd/modules/mod_authz_host.so
LoadModule authz_groupfile_module /opt/jboss/httpd/lib/httpd/modules/mod_authz_groupfile.so
LoadModule authz_user_module /opt/jboss/httpd/lib/httpd/modules/mod_authz_user.so
LoadModule authz_dbm_module /opt/jboss/httpd/lib/httpd/modules/mod_authz_dbm.so
LoadModule authz_owner_module /opt/jboss/httpd/lib/httpd/modules/mod_authz_owner.so
LoadModule authz_default_module /opt/jboss/httpd/lib/httpd/modules/mod_authz_default.so
LoadModule auth_basic_module /opt/jboss/httpd/lib/httpd/modules/mod_auth_basic.so
LoadModule auth_digest_module /opt/jboss/httpd/lib/httpd/modules/mod_auth_digest.so
LoadModule advertise_module /opt/jboss/httpd/lib/httpd/modules/mod_advertise.so
LoadModule file_cache_module /opt/jboss/httpd/lib/httpd/modules/mod_file_cache.so
LoadModule cache_module /opt/jboss/httpd/lib/httpd/modules/mod_cache.so
LoadModule disk_cache_module /opt/jboss/httpd/lib/httpd/modules/mod_disk_cache.so
LoadModule mem_cache_module /opt/jboss/httpd/lib/httpd/modules/mod_mem_cache.so
LoadModule dbd_module /opt/jboss/httpd/lib/httpd/modules/mod_dbd.so
LoadModule dumpio_module /opt/jboss/httpd/lib/httpd/modules/mod_dumpio.so
LoadModule reqtimeout_module /opt/jboss/httpd/lib/httpd/modules/mod_reqtimeout.so
LoadModule ext_filter_module /opt/jboss/httpd/lib/httpd/modules/mod_ext_filter.so
LoadModule include_module /opt/jboss/httpd/lib/httpd/modules/mod_include.so
LoadModule filter_module /opt/jboss/httpd/lib/httpd/modules/mod_filter.so
LoadModule substitute_module /opt/jboss/httpd/lib/httpd/modules/mod_substitute.so
LoadModule deflate_module /opt/jboss/httpd/lib/httpd/modules/mod_deflate.so
LoadModule log_config_module /opt/jboss/httpd/lib/httpd/modules/mod_log_config.so
LoadModule log_forensic_module /opt/jboss/httpd/lib/httpd/modules/mod_log_forensic.so
LoadModule logio_module /opt/jboss/httpd/lib/httpd/modules/mod_logio.so
LoadModule env_module /opt/jboss/httpd/lib/httpd/modules/mod_env.so
LoadModule mime_magic_module /opt/jboss/httpd/lib/httpd/modules/mod_mime_magic.so
LoadModule cern_meta_module /opt/jboss/httpd/lib/httpd/modules/mod_cern_meta.so
LoadModule expires_module /opt/jboss/httpd/lib/httpd/modules/mod_expires.so
LoadModule headers_module /opt/jboss/httpd/lib/httpd/modules/mod_headers.so
LoadModule ident_module /opt/jboss/httpd/lib/httpd/modules/mod_ident.so
LoadModule usertrack_module /opt/jboss/httpd/lib/httpd/modules/mod_usertrack.so
LoadModule unique_id_module /opt/jboss/httpd/lib/httpd/modules/mod_unique_id.so
LoadModule setenvif_module /opt/jboss/httpd/lib/httpd/modules/mod_setenvif.so
LoadModule version_module /opt/jboss/httpd/lib/httpd/modules/mod_version.so
LoadModule proxy_module /opt/jboss/httpd/lib/httpd/modules/mod_proxy.so
LoadModule proxy_connect_module /opt/jboss/httpd/lib/httpd/modules/mod_proxy_connect.so
LoadModule proxy_ftp_module /opt/jboss/httpd/lib/httpd/modules/mod_proxy_ftp.so
LoadModule proxy_http_module /opt/jboss/httpd/lib/httpd/modules/mod_proxy_http.so
LoadModule proxy_scgi_module /opt/jboss/httpd/lib/httpd/modules/mod_proxy_scgi.so
LoadModule proxy_ajp_module /opt/jboss/httpd/lib/httpd/modules/mod_proxy_ajp.so
LoadModule proxy_cluster_module /opt/jboss/httpd/lib/httpd/modules/mod_proxy_cluster.so
LoadModule mime_module /opt/jboss/httpd/lib/httpd/modules/mod_mime.so
LoadModule dav_module /opt/jboss/httpd/lib/httpd/modules/mod_dav.so
LoadModule status_module /opt/jboss/httpd/lib/httpd/modules/mod_status.so
LoadModule autoindex_module /opt/jboss/httpd/lib/httpd/modules/mod_autoindex.so
LoadModule asis_module /opt/jboss/httpd/lib/httpd/modules/mod_asis.so
LoadModule info_module /opt/jboss/httpd/lib/httpd/modules/mod_info.so
LoadModule suexec_module /opt/jboss/httpd/lib/httpd/modules/mod_suexec.so
LoadModule cgi_module /opt/jboss/httpd/lib/httpd/modules/mod_cgi.so
LoadModule cgid_module /opt/jboss/httpd/lib/httpd/modules/mod_cgid.so
LoadModule jk_module /opt/jboss/httpd/lib/httpd/modules/mod_jk.so
LoadModule manager_module /opt/jboss/httpd/lib/httpd/modules/mod_manager.so
LoadModule slotmem_module /opt/jboss/httpd/lib/httpd/modules/mod_slotmem.so
LoadModule dav_fs_module /opt/jboss/httpd/lib/httpd/modules/mod_dav_fs.so
LoadModule vhost_alias_module /opt/jboss/httpd/lib/httpd/modules/mod_vhost_alias.so
LoadModule negotiation_module /opt/jboss/httpd/lib/httpd/modules/mod_negotiation.so
LoadModule dir_module /opt/jboss/httpd/lib/httpd/modules/mod_dir.so
LoadModule imagemap_module /opt/jboss/httpd/lib/httpd/modules/mod_imagemap.so
LoadModule actions_module /opt/jboss/httpd/lib/httpd/modules/mod_actions.so
LoadModule speling_module /opt/jboss/httpd/lib/httpd/modules/mod_speling.so
LoadModule userdir_module /opt/jboss/httpd/lib/httpd/modules/mod_userdir.so
LoadModule alias_module /opt/jboss/httpd/lib/httpd/modules/mod_alias.so
LoadModule rewrite_module /opt/jboss/httpd/lib/httpd/modules/mod_rewrite.so <IfModule !mpm_netware_module>
<IfModule !mpm_winnt_module>
User daemon
Group daemon </IfModule>
</IfModule> ServerAdmin ****
ServerName 10.6.144.156:8835 DocumentRoot "/opt/jboss/httpd/htdocs/htdocs" <Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
</Directory> <Directory "/opt/jboss/httpd/htdocs/htdocs">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory> <IfModule dir_module>
DirectoryIndex index.html
</IfModule> <FilesMatch "^\.ht">
Order allow,deny
Deny from all
Satisfy All
</FilesMatch> ErrorLog "logs/error_log"
LogLevel warn <IfModule log_config_module>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common <IfModule logio_module>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
</IfModule>
CustomLog "logs/access_log" common
</IfModule> <IfModule alias_module>
ScriptAlias /cgi-bin/ "/opt/jboss/httpd/htdocs/cgi-bin/" </IfModule> <IfModule cgid_module>
</IfModule> <Directory "/opt/jboss/httpd/htdocs/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory> DefaultType text/plain <IfModule mime_module>
TypesConfig conf/mime.types
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
</IfModule> <IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule> <IfModule manager_module>
Listen 10.6.144.156:8836
ManagerBalancerName mycluster
<VirtualHost 10.6.144.156:8836>
<Location />
Order deny,allow
Allow from all
</Location> KeepAliveTimeout 300
MaxKeepAliveRequests 0
AdvertiseFrequency 5
EnableMCPMReceive #<Location /mod_cluster_manager>
<Location /cluster>
SetHandler mod_cluster-manager
Order deny,allow
Allow from all
</Location> </VirtualHost>
</IfModule>

先启动jboss master server / slave server,再启动httpd, /opt/jboss/httpd/sbin/httpd -k start,

完成后,http://10.6.144.156:8836/cluster

注意顺序,有时候看不到ajp://***信息,我本机试的时候出现这种情况发现是先启动的mod_cluster

现在就可以用http://10.6.144.156:8835/bill访问应用了

附:httpd命令

查看状态:ps -ef|grep httpd
启动: /opt/jboss/httpd/sbin/httpd -k start
停止:/opt/jboss/httpd/sbin/httpd -k stop
重启:cd /opt/jboss/httpd/sbin/
sudo ./apachectl -k graceful

参考:

1. jboss配置指南

2. jboss eap 6.3 域(Domain)模式配置

jboss使用(eap 6.0以后版本)的更多相关文章

  1. JBOSS EAP 6.0+ Standalone模式安装成Windows服务

    网上有一些文章介绍用JavaService.exe来实现,但是到EAP 6以上版本,我试过好象没成功,幸好JBoss官方已经推出了专门的工具. 一.先到官网下载http://www.jboss.org ...

  2. NHibernate 1.0 Released 版本发布了

    NHibernate is a port of Hibernate to the .NET platform. Hibernate is the leading open-source object- ...

  3. 记录一次MongoDB3.0.6版本wiredtiger与MMAPv1引擎的写入耗时对比

    一.MongoDB3.0.x的版本特性(相对于MongoDB2.6及以下): 增加了wiredtiger引擎: 开源的存储引擎: 支持多核CPU.充分利用内存/芯片级别缓存(注:10月14日刚刚发布的 ...

  4. MongoDBV3.0.7版本(shard+replica)集群的搭建及验证

    集群的模块介绍: 从MongoDB官方给的集群架构了解,整个集群主要有4个模块:Config Server.mongs. shard.replica set: Config Server:用来存放集群 ...

  5. 【大数据】Linux下Storm(0.9版本以上)的环境配置和小Demo

    一.引言: 在storm发布到0.9.x以后,配置storm将会变得简单很多,也就是只需要配置zookeeper和storm即可,而不再需要配置zeromq和jzmq,由于网上面的storm配置绝大部 ...

  6. 【原】webapp开发中兼容Android4.0以下版本的css hack

    话说现在的手机型号越来越多,主要还是android和ios这2个巨头称霸了江湖,而他们自带的浏览器内核是webkit,那对于做移动网页开发的同事来说,一般只要做好webkit内核浏览器的展现效果就行了 ...

  7. HBase1.0以上版本的API改变

    HBase1.0以上版本已经废弃了 HTableInterface,HTable,HBaseAdmin等API的使用,新增了一些API来实现之前的功能: Connectioninterface: Co ...

  8. 升级时出现:请先升级 UCenter 到 1.6.0 以上版本。

    有的站点UCenter升级完成后仍然提示请先升级 UCenter 到 1.6.0 以上版本的现象,下面分享下UCenter版本号不正确的原因和处理办法,可能有以下的几个文件和处理办法: 一.UCent ...

  9. Unity NGUI 3.0.4版本 制作网络版斗地主

    Unity NGUI 3.0.4版本 @by 灰太龙  开发环境 Win7旗舰版 Unity 4.2.1f4 本文就写个开门篇,告诉大家怎么用NGUI,第一步导入NGUI 3.0.4版本! 1.启动U ...

随机推荐

  1. Cocos2d-x 对于中文的支持-----iconv库

    Cocos2d-x 对于中文的支持-----iconv库 转自:http://momowing.diandian.com/post/2013-01-16/40047183777 Jetion: 我们在 ...

  2. 报表服务框架:WEB前端UI

    1.Highcharts 2.ECharts 3.ichartjs 参考: http://v1.hcharts.cn/index.php http://echarts.baidu.com/ http: ...

  3. Spring+Quartz 整合一:常规整合

    步骤一: 定时任务需要一个配置文件(spring-mvc-timeTask.xml 随便起名),将其在web.xml中加载 <context-param> <param-name&g ...

  4. js特效-仿照html属性title写一个弹出标题样式

    问题场景:商品描述,当营业员给客户介绍时会看着这些弹出标题来给客户讲解描述,一般采用html中属性title来实现,但是有些商品描述太长,这些title在IE浏览器中大约展示5s,营业员需要多次移动鼠 ...

  5. svn IP地址变更后如何变更

    通过grep ip地址,发现svn中url地址信息是记录在.svn文件夹entries文件中的,第一种方案应该是遍历目录下的entries文件,将ip替换为新的ip即可. 可以发现这个用sed命令即可 ...

  6. JDBC学习笔记(4)——PreparedStatement的使用

    PreparedStatement public interface PreparedStatement extends Statement;可以看到PreparedStatement是Stateme ...

  7. Spring EL hello world example

    The Spring EL is similar with OGNL and JSF EL, and evaluated or executed during the bean creation ti ...

  8. sublime text2 用ctags插件实现方法定位

    sublime text2 用ctags插件实现方法定位(转) 我们用sublime几乎都会首先安装这个插件,这个插件是管理插件的功能,先安装它,再安装其他插件就方便了. 点击sublime的菜单栏 ...

  9. javascript实现颜色渐变

    渐变(Gradient)是美学中一条重要的形式美法则,与其相对应的是突变.形状.大小.位置.方向.色彩等视觉因素都可以进行渐变.在色彩中,色相.明度.纯度也都可以产生渐变效果,并会表现出具有丰富层次的 ...

  10. 使用 DllImport 属性

    本主题说明 DllImport 属性的常见用法.第一节讨论使用 DllImport 从托管应用程序调用本机代码的优点.第二节集中讨论封送处理和 DllImport 属性的各个方面. 从托管应用程序调用 ...