• jboss使用(eap 6.0以后版本)


    以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参考内容:

      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/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)模式配置

  • 相关阅读:
    利用 Remoting 实现异步队列机制
    JsonHelper
    吐血推荐"泛绿色编程工具": EditPlus 已于 20100714 升级到 v3.12(602)
    以 Console 方式运行、调试、编译 .Net 编写的 Windows 服务
    CompressHelper
    支持掩码输入的 .Net 2.0 Console 可用于使用掩码回显 password 的字符
    20080411 正式版 Microsoft Visual Studio International Pack 1.0 处理汉字、拼音、笔画转换
    CryptoHelper
    C++之String的find方法,查找一个字符串在另一个字符串的什么位置;leveldb字符串转数字解析办法
    Linux线程之线程池、高并发、线程数 C/C++ pthread 函数库
  • 原文地址:https://www.cnblogs.com/yhzh/p/4919364.html
Copyright © 2020-2023  润新知