• Jboss集群(三)


    1       集成配置

    1.1     Apache+mod_jk设置

    1.1.1  改变Apache 端口号

    • 因为默认的80端口经常是被占用的,所以我改成了8081,当然也可以不改,修改方式如下:文件路径:D:\Program Files\Apache Software Foundation\Apache2.2\conf\ httpd.conf   找到这一行:Listen 8081
    • 也需要配置一下ServerName,如果没有配置在mod_jk.log里会报错,同样在上面的文件中找到这行改为:ServerName localhost:8081

    1.1.2  拷贝mod_jk-1.2.30-httpd-2.2.3.so

    将上面下载的mod_jk-1.2.30-httpd-2.2.3.so文件拷贝到D:\Program Files\Apache Software Foundation\Apache2.2\modules目录下,因为在配置文件中要求引用这个文件,所以我们改一个简单的名叫mod_jk.so

    1.1.3  在httpd.conf增加载入mod_jk配置

    l  在上面提到httpd.conf文件中增加:LoadModule jk_module modules/mod_jk.so 根据测试这行不加也行,可能是因为在mod_jk.conf文件已经有了这个引用。

    l  在上面提到httpd.conf文件中增加:include conf/mod_jk.conf

    1.1.4  新建mod_jk配置文件mod_jk.conf

    在在上面提到httpd.conf文件中增加:include conf/mod_jk.conf 配置,所以需要在D:\Program Files\Apache Software Foundation\Apache2.2\conf\文件夹下新建一个mod_jk.conf文件,其内容如下:

    # Load mod_jk module

       # Specify the filename of the mod_jk lib

       #加载mod_jk Module:  将下载的 mod_jk-1.2.30-httpd-2.2.3.so 文件放入到Apache_Home\module 并改并为mod_jk.so

       LoadModule jk_module modules/mod_jk.so

       ## 配置 mod_jk

       #加载集群中的workers

       # 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

      #指定哪些请求交给jboss处理,"loadbalancer"为在 workers.propertise里指定的负载分配控制器名

      JkMount /*   loadbalancer

      #JkMount /jkstatus*   jkstatus

       # 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

       #加载workers的请求处理分配文件

       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 jkstatus

        Order deny,allow

        Deny from all

        Allow from 127.0.0.1

               </Location>

    其中JkMount /* loadbalancer的意思是,把所有的请求都发给loadbalancer处理。可以通过修改url来控制发送某些request。

    1.1.5  增加workers.properties文件

    因为在mod_jk.conf文件中配置了mod_jk的workersFile:JkWorkersFile conf/workers.properties,所以需要在D:\Program Files\Apache Software Foundation\Apache2.2\conf\文件夹下新建workers.properties文件,注意这里必须和引用的文件名相同。workers.properties的内容如下:

    #定义request所要转发到的节点

    #告诉 JK,哪些 worker 是可用的

     worker.list=loadbalancer,jkstatus

     # 定义节点 Node1

     #lbfactor定义该节点的权重,数字越大分发到该节点的request越多

     # modify the host as your host IP or DNS name.

    worker.node1.port=8009

    worker.node1.host=192.16.90.9

    #server的加权比重,值越高,分得的请求越多

    worker.node1.type=ajp13

    worker.node1.lbfactor=1

    # 定义节点 Node2

    # modify the host as your host IP or DNS name.

    worker.node2.port=8009

    worker.node2.host= 192.16.90.87

    worker.node2.type=ajp13

    worker.node2.lbfactor=1

       # 负载配置

    #server名为loadbalancer,用于负载均衡

     worker.loadbalancer.type=lb

     #指定分担请求的jboss

     worker.loadbalancer.balance_workers=node1,node2

    #粘性Session(默认是打开的) 当该属性值=True(或1)时,代表Session是粘性的,即同一Session在集群中的同一个节点上处理,Session不跨越节点。在集群环境中,一般将该值设置为False

     worker.loadbalancer.sticky_session=True

     worker.loadbalancer.sticky_session_force=False

     # Status worker for managing load balancer

     worker.jkstatus.type=status

    其中对于node的命名规则是worker.节点名.xxxx。所以上述文件定义了两个节点:node1和node2。

    所有需要负载均衡的节点,都必须在worker.loadbalancer.balanced_workers参数中列举出来。

    worker.loadbalancer.sticky_session=True表示当前使用的粘连session,要知道粘连session的具体情况,可以查看1.3.2

    worker.loadbalancer.sticky_session_force=False表示如果与用户绑定的server连接不上时,自动转向别的server。

    sticky_session=true表示某个请求始终由当前Tomcat处理,不会转移到其他Tomcat上。sticky_session_force=false表示,当前Tomcat挂掉的时候,自动将Session复制到其他Tomcat上。如果将sticky_session_force设置为true,当你关闭一台Tomcat并刷新网页,将得到503错误。但设置为false,关闭一台Tomcat并刷新网页,被关闭的那台Tomcat上的Session会被自动复制到其他Tomcat上,系统继续正常运行。(需要整个刷新页面才能进行session复制,即点浏览器地址上的刷新按钮,或者按F5键---王乐2013-1-14)。

    1.1.6  增加workers的请求处理分配文件

    在mod_jk.con 中配置了workers的请求处理分配文件,配置如下:

       JkMountFile conf/uriworkermap.properties

    所以需要求在D:\Program Files\Apache Software Foundation\Apache2.2\conf\文件夹下新建uriworkermap.properties文件,其内容如下:

    #所有请求都由loadbalancer这个server处理

     /*=loadbalancer

    #所有包含jkstatus请求的都由status这个 server处理

    #/jkstatus=jkstatus

    #这里的"!”是“非”的意思。

    /*.gif=loadbalancer

    /*.jpg=loadbalancer

    /*.png=loadbalancer

    /*.css=loadbalancer

    /*.js=loadbalancer

    /*.htm=loadbalancer

    /*.html=loadbalancer

    注意:uriworkermap.properties文件中的loadbalancer、jkstatus是在worders.properties 文件中配置的名称。

    1.2     Jboss的配置

    说明:我使用的jboss版本为4.0.2

    1.2.1  增加这个属性jmvRoute="node1"

    D:\jboss-4.0.2-bap\server\default\deploy\jbossweb-tomcat55.sar\ server.xm修改为:

      <Engine name="jboss.web" defaultHost="localhost"  jmvRoute="node1">

    请注意,jmvRoute的值必须和mod_jk中的节点名字正确对应,否则无法正确路由。另外这里有一个小bug, jboss这个属性正确的写法是jvmRoute,但是官司文档、网上都上好多人写成jmvRoute。(使用jvmRoute属性字段—王乐2013-1-14)。

    不配置这个属性,粘性session不会起作用,因为负载均衡器会按照这个名称记录当前的 session是属于那个节点的。

    1.2.2  建立AJP连接

    <Connector port="8009" address="${jboss.bind.address}"

             emptySessionPath="true" enableLookups="false" redirectPort="8443"

             protocol="AJP/1.3"/>

    这个一般就有的,只要看一下端口号就行了,这个端口号对于workers.properties 中的配置:worker.node1.port=8009。

    1.2.3  打开JK 开关

    D:\jboss-4.0.2-bap\server\default\deploy\jbossweb-tomcat55.sar\META-INF\ jboss-service.xml

    <attribute name="UseJK">true</attribute>

  • 相关阅读:
    flutter 日常所记
    flutter 项目打包出错问题
    flutter去除白屏,添加启动图
    flutter快捷键总结
    flutter组件总结
    首次使用flutter
    微信小程序引入坐标反解析
    公众号H5引入微信地图组件的正确姿势
    小程序获取unionid的方法
    对比两个文件夹或者文件的差异
  • 原文地址:https://www.cnblogs.com/wangle1001986/p/2859688.html
Copyright © 2020-2023  润新知