jboss使用(eap 6.0以后版本)

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

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

一、认识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参考内容:

  1 ServerRoot "/opt/jboss/httpd/httpd"
  2 Listen 8835
  3 LoadModule authn_file_module /opt/jboss/httpd/lib/httpd/modules/mod_authn_file.so
  4 LoadModule authn_dbm_module /opt/jboss/httpd/lib/httpd/modules/mod_authn_dbm.so
  5 LoadModule authn_anon_module /opt/jboss/httpd/lib/httpd/modules/mod_authn_anon.so
  6 LoadModule authn_dbd_module /opt/jboss/httpd/lib/httpd/modules/mod_authn_dbd.so
  7 LoadModule authn_default_module /opt/jboss/httpd/lib/httpd/modules/mod_authn_default.so
  8 LoadModule authn_alias_module /opt/jboss/httpd/lib/httpd/modules/mod_authn_alias.so
  9 LoadModule authz_host_module /opt/jboss/httpd/lib/httpd/modules/mod_authz_host.so
 10 LoadModule authz_groupfile_module /opt/jboss/httpd/lib/httpd/modules/mod_authz_groupfile.so
 11 LoadModule authz_user_module /opt/jboss/httpd/lib/httpd/modules/mod_authz_user.so
 12 LoadModule authz_dbm_module /opt/jboss/httpd/lib/httpd/modules/mod_authz_dbm.so
 13 LoadModule authz_owner_module /opt/jboss/httpd/lib/httpd/modules/mod_authz_owner.so
 14 LoadModule authz_default_module /opt/jboss/httpd/lib/httpd/modules/mod_authz_default.so
 15 LoadModule auth_basic_module /opt/jboss/httpd/lib/httpd/modules/mod_auth_basic.so
 16 LoadModule auth_digest_module /opt/jboss/httpd/lib/httpd/modules/mod_auth_digest.so
 17 LoadModule advertise_module /opt/jboss/httpd/lib/httpd/modules/mod_advertise.so
 18 LoadModule file_cache_module /opt/jboss/httpd/lib/httpd/modules/mod_file_cache.so
 19 LoadModule cache_module /opt/jboss/httpd/lib/httpd/modules/mod_cache.so
 20 LoadModule disk_cache_module /opt/jboss/httpd/lib/httpd/modules/mod_disk_cache.so
 21 LoadModule mem_cache_module /opt/jboss/httpd/lib/httpd/modules/mod_mem_cache.so
 22 LoadModule dbd_module /opt/jboss/httpd/lib/httpd/modules/mod_dbd.so
 23 LoadModule dumpio_module /opt/jboss/httpd/lib/httpd/modules/mod_dumpio.so
 24 LoadModule reqtimeout_module /opt/jboss/httpd/lib/httpd/modules/mod_reqtimeout.so
 25 LoadModule ext_filter_module /opt/jboss/httpd/lib/httpd/modules/mod_ext_filter.so
 26 LoadModule include_module /opt/jboss/httpd/lib/httpd/modules/mod_include.so
 27 LoadModule filter_module /opt/jboss/httpd/lib/httpd/modules/mod_filter.so
 28 LoadModule substitute_module /opt/jboss/httpd/lib/httpd/modules/mod_substitute.so
 29 LoadModule deflate_module /opt/jboss/httpd/lib/httpd/modules/mod_deflate.so
 30 LoadModule log_config_module /opt/jboss/httpd/lib/httpd/modules/mod_log_config.so
 31 LoadModule log_forensic_module /opt/jboss/httpd/lib/httpd/modules/mod_log_forensic.so
 32 LoadModule logio_module /opt/jboss/httpd/lib/httpd/modules/mod_logio.so
 33 LoadModule env_module /opt/jboss/httpd/lib/httpd/modules/mod_env.so
 34 LoadModule mime_magic_module /opt/jboss/httpd/lib/httpd/modules/mod_mime_magic.so
 35 LoadModule cern_meta_module /opt/jboss/httpd/lib/httpd/modules/mod_cern_meta.so
 36 LoadModule expires_module /opt/jboss/httpd/lib/httpd/modules/mod_expires.so
 37 LoadModule headers_module /opt/jboss/httpd/lib/httpd/modules/mod_headers.so
 38 LoadModule ident_module /opt/jboss/httpd/lib/httpd/modules/mod_ident.so
 39 LoadModule usertrack_module /opt/jboss/httpd/lib/httpd/modules/mod_usertrack.so
 40 LoadModule unique_id_module /opt/jboss/httpd/lib/httpd/modules/mod_unique_id.so
 41 LoadModule setenvif_module /opt/jboss/httpd/lib/httpd/modules/mod_setenvif.so
 42 LoadModule version_module /opt/jboss/httpd/lib/httpd/modules/mod_version.so
 43 LoadModule proxy_module /opt/jboss/httpd/lib/httpd/modules/mod_proxy.so
 44 LoadModule proxy_connect_module /opt/jboss/httpd/lib/httpd/modules/mod_proxy_connect.so
 45 LoadModule proxy_ftp_module /opt/jboss/httpd/lib/httpd/modules/mod_proxy_ftp.so
 46 LoadModule proxy_http_module /opt/jboss/httpd/lib/httpd/modules/mod_proxy_http.so
 47 LoadModule proxy_scgi_module /opt/jboss/httpd/lib/httpd/modules/mod_proxy_scgi.so
 48 LoadModule proxy_ajp_module /opt/jboss/httpd/lib/httpd/modules/mod_proxy_ajp.so
 49 LoadModule proxy_cluster_module /opt/jboss/httpd/lib/httpd/modules/mod_proxy_cluster.so
 50 LoadModule mime_module /opt/jboss/httpd/lib/httpd/modules/mod_mime.so
 51 LoadModule dav_module /opt/jboss/httpd/lib/httpd/modules/mod_dav.so
 52 LoadModule status_module /opt/jboss/httpd/lib/httpd/modules/mod_status.so
 53 LoadModule autoindex_module /opt/jboss/httpd/lib/httpd/modules/mod_autoindex.so
 54 LoadModule asis_module /opt/jboss/httpd/lib/httpd/modules/mod_asis.so
 55 LoadModule info_module /opt/jboss/httpd/lib/httpd/modules/mod_info.so
 56 LoadModule suexec_module /opt/jboss/httpd/lib/httpd/modules/mod_suexec.so
 57 LoadModule cgi_module /opt/jboss/httpd/lib/httpd/modules/mod_cgi.so
 58 LoadModule cgid_module /opt/jboss/httpd/lib/httpd/modules/mod_cgid.so
 59 LoadModule jk_module /opt/jboss/httpd/lib/httpd/modules/mod_jk.so
 60 LoadModule manager_module /opt/jboss/httpd/lib/httpd/modules/mod_manager.so
 61 LoadModule slotmem_module /opt/jboss/httpd/lib/httpd/modules/mod_slotmem.so
 62 LoadModule dav_fs_module /opt/jboss/httpd/lib/httpd/modules/mod_dav_fs.so
 63 LoadModule vhost_alias_module /opt/jboss/httpd/lib/httpd/modules/mod_vhost_alias.so
 64 LoadModule negotiation_module /opt/jboss/httpd/lib/httpd/modules/mod_negotiation.so
 65 LoadModule dir_module /opt/jboss/httpd/lib/httpd/modules/mod_dir.so
 66 LoadModule imagemap_module /opt/jboss/httpd/lib/httpd/modules/mod_imagemap.so
 67 LoadModule actions_module /opt/jboss/httpd/lib/httpd/modules/mod_actions.so
 68 LoadModule speling_module /opt/jboss/httpd/lib/httpd/modules/mod_speling.so
 69 LoadModule userdir_module /opt/jboss/httpd/lib/httpd/modules/mod_userdir.so
 70 LoadModule alias_module /opt/jboss/httpd/lib/httpd/modules/mod_alias.so
 71 LoadModule rewrite_module /opt/jboss/httpd/lib/httpd/modules/mod_rewrite.so
 72
 73 <IfModule !mpm_netware_module>
 74 <IfModule !mpm_winnt_module>
 75 User daemon
 76 Group daemon
 77
 78 </IfModule>
 79 </IfModule>
 80
 81 ServerAdmin ****
 82 ServerName 10.6.144.156:8835
 83
 84 DocumentRoot "/opt/jboss/httpd/htdocs/htdocs"
 85
 86 <Directory />
 87     Options FollowSymLinks
 88     AllowOverride None
 89     Order deny,allow
 90     Allow from all
 91 </Directory>
 92
 93 <Directory "/opt/jboss/httpd/htdocs/htdocs">
 94     Options Indexes FollowSymLinks
 95     AllowOverride None
 96     Order allow,deny
 97     Allow from all
 98 </Directory>
 99
100 <IfModule dir_module>
101     DirectoryIndex index.html
102 </IfModule>
103
104 <FilesMatch "^\.ht">
105     Order allow,deny
106     Deny from all
107     Satisfy All
108 </FilesMatch>
109
110 ErrorLog "logs/error_log"
111 LogLevel warn
112
113 <IfModule log_config_module>
114     LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
115     LogFormat "%h %l %u %t \"%r\" %>s %b" common
116
117     <IfModule logio_module>
118       LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
119     </IfModule>
120     CustomLog "logs/access_log" common
121 </IfModule>
122
123 <IfModule alias_module>
124     ScriptAlias /cgi-bin/ "/opt/jboss/httpd/htdocs/cgi-bin/"
125
126 </IfModule>
127
128 <IfModule cgid_module>
129 </IfModule>
130
131 <Directory "/opt/jboss/httpd/htdocs/cgi-bin">
132     AllowOverride None
133     Options None
134     Order allow,deny
135     Allow from all
136 </Directory>
137
138 DefaultType text/plain
139
140 <IfModule mime_module>
141     TypesConfig conf/mime.types
142     AddType application/x-compress .Z
143     AddType application/x-gzip .gz .tgz
144 </IfModule>
145
146 <IfModule ssl_module>
147 SSLRandomSeed startup builtin
148 SSLRandomSeed connect builtin
149 </IfModule>
150
151 <IfModule manager_module>
152   Listen 10.6.144.156:8836
153   ManagerBalancerName mycluster
154   <VirtualHost 10.6.144.156:8836>
155     <Location />
156      Order deny,allow
157      Allow from all
158     </Location>
159
160     KeepAliveTimeout 300
161     MaxKeepAliveRequests 0
162     AdvertiseFrequency 5
163     EnableMCPMReceive
164
165     #<Location /mod_cluster_manager>
166     <Location /cluster>
167        SetHandler mod_cluster-manager
168        Order deny,allow
169        Allow from all
170     </Location>
171
172   </VirtualHost>
173 </IfModule>

先启动jboss master server / slave server,再启动httpd, /opt/app/apache2.2.21//bin/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)模式配置

时间: 2024-10-24 00:48:58

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

c# .net 3.5 4.0 4.5 5.0 6.0各个版本新特性战略规划总结【转载】

引用:http://blog.csdn.net/attilax/article/details/42014327 c# .net 3.5 4.0 各个版本新特性战略规划总结 1. --------------.Net Framework版本同CLR版本的关系1 2. paip.------------SDK2.0功能-------------2 2.1. 泛型:2 3. --------------sdk3.0  增加了以下功能..2 3.1. LINQ 3 4.  ----------sdk4

HIVE 0.11版本的bug

HIVE 0.11版本的bug 两次{{group by}}的bug  https://issues.apache.org/jira/browse/HIVE-5149 SELECT key, COUNT(*) FROM ( SELECT key, value, COUNT( * ) FROM src GROUP BY key, value ) a GROUP BY key; 特点是两次 group by ,外层字段少于内层,2次集合函数.可以把中间的查询做成临时表回避这个bug HIVE 0.1

Oracle正式发布VirtualBox 5.0.22版本

甲骨文(Oracle)正式发布了VirtualBox 5.0.22版本,该开源和跨平台虚拟化软件的最新维护版本已经面向所有支持平台开放,引入了诸多新特性和功能改善推荐用户尽早完成升级.新版本在Linux Additions中引入了对即将发布的Linux 4.7内核的支持,此外还支持Red Hat Enterprise Linux 6.8系统. 事实上在VirtualBox 5.0.22版本中Linux Additions带来了一系列改善,例如更好的兼容某些32位guests.在hard gues

Cocos2d-x 2.0以上版本安装方法

1,cd 到2dx根目录,MAC平台使用./create-multi-platform-projects.py  然后提示: -bash: ./create-multi-platform-projects.py: /usr/bin/evn: bad interpreter: No such file or directory 没关系,我们打开.py文件,发现其实引用的是tools/project-creator/create_project.py 这文件 2,我们再cd 到tools/proje

开源yYmVc项目 v 0.2 版本介绍

项目地址:https://code.csdn.net/hacke2/yymvc 本版本主要实现以下几点功能: 1.框架入口基于过滤器统一实现,action后缀动态配置 2.action配置模仿struts 3.增加action的辅助类 4.完成模型与视图的分离 ----------- 开源yYmVc项目 v 0.2 版本介绍,布布扣,bubuko.com

INNO SETUP 5.5.0以上版本中文语言包

1 ; *** Inno Setup version 5.5.0+ Chinese messages *** 2 ; 3 ; To download user-contributed translations of this file, go to: 4 ; http://www.jrsoftware.org/is3rdparty.php 5 ; 6 ; Note: When translating this text, do not add periods (.) to the end of

Xcode(7.0以上版本)真机调试

1. 下载Xcode(7.0以上版本) 通过访问 https://developer.apple.com/xcode/downloads/ 下载最新的xcode7版本. 2. 配置accounts 打开Xcode,点击电脑屏幕左上角"Xcode",选择"Preferences",选择"Accounts",点击左下角的"+",选择"Add Apple ID",将自己的账号输入进去. 输入Apple ID后,下

在低于android 5.0的版本中ActionBar不显示

我从ABS切换到AppCompat与Material theme(仅适用于API21) 我的配置文件如下: <application android:theme="@style/AppStyle" <-- values folder --> <style name="AppStyle" parent="@style/AudioRecTheme"> <style name="AudioRecTheme&

Atitit.c# .net 3.5 4.0 各个版本新特性战略规划总结

Atitit.c# .net 3.5 4.0 各个版本新特性战略规划总结 1. --------------.Net Framework版本同CLR版本的关系 1 2. paip.------------SDK2.0功能------------- 2 2.1. 泛型: 2 3. --------------sdk3.0  增加了以下功能.. 2 3.1. LINQ 3 4.  ----------sdk4.0 新加功能------------ 3 5. ].Net4.5的五项强大新特性 3 5.