zoukankan      html  css  js  c++  java
  • 使用mod_cluster进行apache httpd server和jboss eap 6.1集群配置

    本文简单介绍,使用mod_cluster进行apache httpd server和jboss eap 6.1集群配置。本配置在windows上测试通过,linux下应该是一样的。可能要稍作调整。后面会在linux上做测试。

    1、首先下载apache httpd server

    http://httpd.apache.org/download.cgi#apache22,下载2.2.25,应该最新的2.4.6版本也是可以的。只是官网没有给出windows的版本,我又懒得去编译。就使用2.2.25。

    将apache安装到 C:asfApache2.2

    2、下载mod_cluster

    2-1、  下载地址:http://www.jboss.org/mod_cluster/downloads/1-2-0-Final 选择1.2对应平台的版本。这里选择binaries windows-x86。

    其实,选择linux的二进制版本也是可以只需要获取四个.so文件即可。windows和linux中,这四个文件是一样的。

    2-2、  解压后,里面就是一个apache httpd server。解压后里面会有一个httpd-2.2文件夹,进入,再进入modules文件夹,找到四个文件

    mod_proxy_cluster.so
    mod_manager.so
    mod_slotmem.so
    mod_advertise.so

    2-3、 双击httpd-2.2/bin 下的installconf.bat,安装初始化配置。因为我们使用我们自己下载的apache httpd server,这一步就不需要了。

    2-4、 将上面四个文件拷到,第一步中,我们安装的apache的目录下的modules,C:asfApache2.2modules

    2-5、  下面配置C:asfApache2.2confhttpd.conf这个文件,为了简化配置,和httpd.conf相同目录下,我们新增一个配置文件jboss_mod.conf,然后再里面加入下面的内容

    LoadModule proxy_module modules/mod_proxy.so
    LoadModule proxy_ajp_module modules/mod_proxy_ajp.so

    LoadModule slotmem_module modules/mod_slotmem.so
    LoadModule manager_module modules/mod_manager.so
    LoadModule proxy_cluster_module modules/mod_proxy_cluster.so
    LoadModule advertise_module modules/mod_advertise.so


    <IfModule manager_module>
    Listen 10.10.16.119:6660
    <VirtualHost 10.10.16.119:6660>  
       <Location />
              Order deny,allow
              Deny from all
              Allow from all
       </Location>
       
       KeepAliveTimeout 60
       MaxKeepAliveRequests 0
       EnableMCPMReceive On
       AdvertiseFrequency 5


       ManagerBalancerName modcluster
       ServerAdvertise On
       AllowDisplay On


       <Location /mod_cluster_manager>  
           SetHandler mod_cluster-manager  
           Order deny,allow  
           Deny from all  
           Allow from all  
        </Location>  
       
    </VirtualHost>
    </IfModule>

    将其中的IP地址换成你自己的IP地址。

    2-6、 在C:asfApache2.2confhttpd.conf中引入我们新增的jboss_mod.conf文件,在httpd.conf最后面增加下面一行

    Include conf/jboss_mod.conf


    3、这样mod_cluster和apache httpd server的配置就好了。

    重新启动apache,访问http://10.10.16.119:6660/mod_cluster_manager,会看到一个页面,类似下面:说明mod_cluster和apache已经整合成功了。否则请重复上面的步骤。直到成功。



    4、下面配置jboss eap 6.1,,jboss as 7.2+,应该也是可以的。

    4-1、下载jboss eap 6.1,地址:http://www.jboss.org/jbossas/downloads/

    下载后解压,我们将其放到e:jboss-eap-6.1。因为集群需要两台server,我们假设两台server的IP分别是:10.10.16.119(master),10.10.16.212(slave)。

    名字只是以示区分,并不是主从,他们两个是平等的。

    4-2、这里使用到了jboss的域模式,想了解更多,自己去google了。这里master作为域控制器,下面开始:

    进入E:jboss-eap-6.1domainconfiguration,打开domain.xml,到最后,去掉server-groups其他所有的组,只留下main-server-group,jvm heap大小,根据你的server 也要做调整,否则可能内存溢出,如下所示:

    <server-groups>
            <server-group name="main-server-group" profile="full-ha">
                <jvm name="default">
                    <heap size="512m" max-size="512m"/>
                    <permgen max-size="128m"/>
                </jvm>
                <socket-binding-group ref="full-ha-sockets"/>
            </server-group>
        </server-groups>

    我们使用full-ha profile,记得socket-binding-group也要做更改。

    4-3、jboss域模式,需要增加账户,在E:jboss-eap-6.1in下,有个文件add-user.bat,双击,

    a、添加ManagementRealm账户administrator,密码!QAZ1234

    这个账户是用来登录jboss 控制台,管理jboss的。

    b、增加 ApplicationRealm账户,administrator,密码!QAZ234

    这个账户是应用级别的账户,后面jboss jms hornetq集群会使用到。

    c、增加ManagementRealm账户slave,密码!QAZ1234

    所有域中的主机,都要在域控制器中,以主机名为账户名,在master中注册一个账户,这个账户是用来和域控制器进行通讯使用的。注册的最后,会提示你是否需要将该账户用于主机间通讯,选择yes,会生成一个,base64加密的密码,这个要记下啦,后面会用到。


    4-4、下面配置jms,进入E:jboss-eap-6.1domainconfiguration,打开domain.xml,找到full-ha profile,然后找到messaging subsystem,更改

    <cluster-user>administrator</cluster-user>
                        <cluster-password>${jboss.messaging.cluster.password:IVFBWjEyMzQ=}</cluster-password>

    这里的账户和密码就是上一步骤b,增加的账户。密码要base64加密的。


    4-5、配置master的host.xml,E:jboss-eap-6.1domainconfigurationhost.xml,

    <interfaces>
            <interface name="management">
                <inet-address value="${jboss.bind.address.management:10.10.16.119}"/>
            </interface>
            <interface name="public">
               <inet-address value="${jboss.bind.address:10.10.16.119}"/>
            </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.10.16.119}"/>
            </interface>
        </interfaces>

    后面的IP改成master的IP。

    将<host name="master" xmlns="urn:jboss:domain:1.4">,添加name="master"

    为了简化

    <servers> 下只保留一个<server>

    这样,mster基本上就配置完毕了。

    5、下面配置slave,我们假设,路径和master一样,E:jboss-eap-6.1你也可以调整。由于slave不作为域控制器,只是一个主机,

    所以删除E:jboss-eap-6.1domainconfiguration下的domain.xml。

    5-1、首先增加账户,只需要增加master配置中的第一个账户就可以了,管理员账户。

    5-2、然后打开host.xml

    <host name="slave" xmlns="urn:jboss:domain:1.4">,主机名改为slave

    在<security-realm name="ManagementRealm">下增加子元素

    <server-identities>
                         <secret value="IVFBWjEyMzQ="/>
                    </server-identities>

    其中的secret的value值,就是在master账户配置中c步骤配置的账户,密码是bas64加密的。

    5-3、配置主机控制器,其中的host,就是master的ip

    <domain-controller>
           <!-- Alternative remote domain controller configuration with a host and port -->
           <remote host="${10.10.16.119}" port="${jboss.domain.master.port:9999}" security-realm="ManagementRealm"/>
        </domain-controller>

    5-4、

    为了简化

    <servers> 下只保留一个<server>

    <server name="server-one" group="main-server-group">
            </server>

    5-5、管理端口配置,将后面的IP地址改成slave的IP地址

    <interfaces>
            <interface name="management">
                <inet-address value="${jboss.bind.address.management:10.10.16.212}"/>
            </interface>
            <interface name="public">
               <inet-address value="${jboss.bind.address:10.10.16.212}"/>
            </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.10.16.212}"/>
            </interface>
        </interfaces>

    这样,slave也就配置好了。


    6、下面重启apache,然后依次启动master,slave。启动jboss eap的脚本在E:jboss-eap-6.1in下的domian.bat。

    如果启动都没有报错。

    访问  http://10.10.16.119:6660/mod_cluster_manager,你讲看到下面有两个Node,节点。你访问apache,mod_cluster就可以将请求转发到后面的jboss eap。


    7、你可以增加一个空的war项目。我的名字是skmbw.war,然后,登录http://10.10.16.119:9990/,登录jboss控制台,使用master中增加账号,a步骤的账号密码,

    将项目skmbw.war,传上去,然后部署.


    右上角,Runtime,然后,左上角,Manage Deployments,在Content Repository  tab菜单中,点击add 按钮,上传。

    就可以将skmbw,同时部署到两台server上。

    通过 http://10.10.16.119/skmbw就可以访问到了。说明apache成功转发了请求。

    如果,想让apache处理静态资源,动态资源交给jboss处理,需要apache的httpd.conf做进一步配置,留在下一篇文章中。

  • 相关阅读:
    垂死挣扎-3
    垂死挣扎-2
    垂死挣扎-1
    【互联网考试系列-1】进程与线程
    【iOS基础学习随笔-2】SQLite的使用
    【iOS面试系列-2】多线程中同步、异步和串行、并行之间的逻辑关系(必考,必须掌握)
    docker
    给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。
    621. 任务调度器
    204. 计数质数
  • 原文地址:https://www.cnblogs.com/keanuyaoo/p/3289820.html
Copyright © 2011-2022 走看看