jboss的JVMroute记录

jboss5的nodename是在

/usr/local/jboss-5.1.0.GA/server/dms/deploy/jbossweb.sar/server.xml   这里的  jvmroute 

需要和Apache对应

转载原路径:http://blog.sina.com.cn/s/blog_5ca9fdd80100ecrq.html

最近公司要用到Jboss5.1,临时研究了下,发现与Jboss4配置相当多的不同,现在把配置过程发上来,希望对有需要的朋友,有帮助。(备注:经过测试的)

jboss5.1+jdk6.0+apache2.2.11+mod_jk集群配置

配置:
1:环境变量配置
        JAVA_HOME=jdk1.6.0_14
        JBOSS_HOME=jboss-5.1.0.GA
        PATH
2:JBOSS配置
        1:修改端口:
JBOSS_HOME/server/all/deploy/jbossweb.sar/server.xml
<!-- …
<Connector protocol="HTTP/1.1" port="8080" address="${0.0.0.0}"
->
<Engine name="jboss.web" defaultHost="localhost" jvmRoute="node1">
…
</Engine>

将8080修改为你想要的端口,将${jboss.bind.address}修改为0.0.0.0,允许从eth0,eth1,lo都能够访问jboss 80端口,也可以在启动参数中指定ip地址选项,指定绑定的ip地址:run.bat -b x.x.x.*
另外一台jboss同样配置,注意node2。
补充:jboss的监听地址一定要写网卡绑定的ip,要跟前端apache mod_jk配置中指定的ip一致,最好在同一个网段如172.16.9.*,同时一定修改启动监听地址为0.0.0.0,否则apache 的mod-jk无法转发request.
默认启动后,访问apache所在的机器ip。。。如果访问1服务,停掉1服务后,则会自动切换到2服务。
2.放开useJK
JBOSS_HOMEserveralldeployersjbossweb.deployerMETA-INFwar-deployers-jboss-beans.xml把下面注释放开,修改
 <property name="useJK">true</property>    
 <property name="useSessionPassivation">true</property>
 <property name="passivationMaxIdleTime">-1</property>  
 <property name="passivationMinIdleTime">-1</property>


3.Apache配置
a. 将下载的apache mod_jk重命名为mod_jk.so,复制到APACHE_HOME/modules/中,修改 APACHE_HOME/conf/httpd.conf,在文件末添加: 
# Include mod_jk's specific configuration file
Include conf/mod-jk.conf

LoadModule proxy_module modules/mod_proxy.so 
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule status_module modules/mod_status.so

<Proxy *> 
       Order deny,allow
       allow from all
</Proxy>

ProxyPass / balancer://proxy/   stickysession=JSESSIONID nofailover=On lbmethod=byrequests
ProxyPassReverse / balancer://proxy/
<Proxy balancer://proxy>
        BalancerMember ajp://192.168.1.14:8009/  loadfactor=50  route=note1
        BalancerMember ajp://192.168.1.13:8009/  loadfactor=50  route=note2
</Proxy>
ProxyPass为代理转发的Url,即将所有访问/的请求转发到群集balancer://proxy 
loadfactor为各主机间的负载比例参数,可是设置不同指数 
BalancerMember为群集的成员,即群集服务器A或B,负载均衡服务器会根据均衡规则来将请求转发给BalancerMember.

b. 在APACHE_HOME/conf/目录创建新文件mod-jk.conf,内容如下: 
#Load mod_jk module
# Specify the filename of the mod_jk lib
LoadModule jk_module modules/mod_jk.so
 
# 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
JkMount /*.* loadbalancer
 
# 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
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 status
    Order deny,allow
    Deny from all
    Allow from 127.0.0.1
</Location>    

c. 在APACHE_HOME/conf/目录创建新文件uriworkermap.properties,内容如下:
/jmx-console=loadbalancer
/jmx-console/*=loadbalancer
/web-console=loadbalancer
/web-console/*=loadbalancer
这将配置从mod_jk将转发请求到/jmx-console,转发 /web-console 到JBOSS.

d. 在APACHE_HOME/conf/目录创建新文件workers.properties,内容如下:
# Define list of workers that will be used
# for mapping requests
worker.list=loadbalancer,status
# worker.list=loadbalancer,node1,node2

# Define Node1
# modify the host as your host IP or DNS name.
worker.node1.port=8009
worker.node1.host=192.168.1.14
worker.node1.type=ajp13
worker.node1.lbfactor=1
worker.node1.cachesize=100

# Define Node2
# modify the host as your host IP or DNS name.
worker.node2.port=8009
worker.node2.host= 192.168.1.13
worker.node2.type=ajp13
worker.node2.lbfactor=1
worker.node2.cachesize=100

# Load-balancing behaviour
worker.loadbalancer.type=lb
worker.loadbalancer.balance_workers=node1,node2
worker.loadbalancer.sticky_session=1
#worker.list=loadbalancer

# Status worker for managing load balancer
worker.status.type=status

上面的文件中配置了两个节点,name分别为node1,node2,指定两个节点的IP,并在worker.loadbalancer.balance_workers中指定所有的node列表,
worker.loadbalancer.sticky_session设置是否启用“粘着的”Session,sticky session是指来自同一IP的请求将被发送到同一个Jboss节点,
sticky session设为0的话同一session的不同请求会被负载均衡分发到不同的jboss节点上。

e. 修改应用程序的web.xml文件,添加<distributable />元素.
保持session同步用

至此,jboss集群环境已经基本配置完成,启动先启动apache,然后启动jboss,可测试,启动jboss时需指定run.bat -c all ,default配置是不支持集群的。



jboss-web.xml
转载:https://www.cnblogs.com/feng9exe/p/11287598.html

<application xmlns="http://java.sun.com/xml/ns/j2ee" version="1.4"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com /xml/ns/j2ee 
                             http://java.sun.com/xml/ns/j2ee/application_1_4.xsd">
    <display-name>JBossDukesBank</display-name>
    <module>
        <ejb>bank-ejb.jar</ejb>
    </module>
    <module>
        <web>
            <web-uri>web-client.war</web-uri>
            <context-root>bank</context-root>
        </web>
    </module>
</application>



原文地址:https://www.cnblogs.com/smlie/p/10843066.html