Liferay JBoss Master/Slave Failover Mode Configuration
1Prepare software
1.1Apache 2.2 httpd-2.2.22-win32-x86-openssl-0.9.8t.msi
1.2LF JBoss(2 instances)
1.3mod_jk.so tomcat-connectors-1.2.37-windows-i386-httpd-2.2.x.zip
2mod_jk.so
2.1Rename to mod_jk.so and copy to %APACHE_HOME%/modules directory
2.2Load the mod_jk.so connector
Modify %APACHE_HOME%/conf/httpd.conf file, add below line to bottom line.
LoadModule jk_module modules/mod_jk.so
2.3Configure mod_jk for cluster nodes.
Modify “httpd.conf” file, add below lines to bottom line.
JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
JkMount /* loadbalancer
2.4Need to create a file named workers.properties in conf directory. And add below lines in it.
# Define list of workers that will be used
# for mapping requests
worker.list=loadbalancer,status
# Define Master
worker.master.host=10.25.153.107
worker.master.port=8009
worker.master.type=ajp13
worker.master.lbfactor=1
worker.master.cachesize=10
worker.master.cache_timeout=600
worker.master.socket_timeout=5
worker.master.recycle_timeout=20
worker.slave.prepost_timeout=1
worker.master.recovery_options=0
worker.master.connection_pool_timeout=5
worker.master.ping_mode=A
worker.master.ping_timeout=500
worker.master.connect_timeout=500
# Define prefered failover node for master
worker.master.redirect=slave
# Define Slave
worker.slave.host=127.0.0.1
worker.slave.port=8009
worker.slave.type=ajp13
worker.slave.lbfactor=1
worker.slave.cachesize=10
worker.slave.cache_timeout=600
worker.slave.socket_timeout=60
worker.slave.recycle_timeout=100
worker.slave.prepost_timeout=50
worker.slave.recovery_options=0
worker.slave.connection_pool_timeout=60
worker.slave.ping_mode=A
worker.slave.ping_timeout=20000
worker.slave.connect_timeout=20000
#Disable slave for all requests except failover
worker.slave.activation=disabled
# Load-balancing behaviour
worker.loadbalancer.type=lb
worker.loadbalancer.balance_workers=master,slave
worker.loadbalancer.sticky_session=1
# Status worker for managing load balancer
worker.status.type=status
3Configure JBoss to Cluster node.
3.1In file standalone/configuration/standalone.xml, add content as grew part below
<subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" instance-id="master" native="false">
<configuration>
<jsp-configuration development="true"/>
</configuration>
<connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/>
<connector name="ajp" protocol="AJP/1.3" scheme="http" socket-binding="ajp"/>
<virtual-server name="default-host" enable-welcome-root="false">
<alias name="localhost"/>
<alias name="example.com"/>
</virtual-server>
</subsystem>
3.2Add interface for specific ip
Add gray part as below, and change xxx.yyy.aaa.bbb to your jboss server ip.
<interfaces>
<interface name="management">
<inet-address value="${jboss.bind.address.management:127.0.0.1}"/>
</interface>
<interface name="public">
<inet-address value="${jboss.bind.address:127.0.0.1}"/>
</interface>
<interface name="unsecure">
<inet-address value="${jboss.bind.address.unsecure:127.0.0.1}"/>
</interface>
<interface name="specific-ip-interface">
<inet-address value=" xxx.yyy.aaa.bbb "/>
</interface>
</interfaces>
3.3Change below gray part according to the interface added above.
<socket-binding-group name="standard-sockets" default-interface="specific-ip-interface" port-offset="${jboss.socket.binding.port-offset:0}">
<socket-binding name="management-native" interface="specific-ip-interface" port="${jboss.management.native.port:9999}"/>
<socket-binding name="management-http" interface="specific-ip-interface" port="${jboss.management.http.port:9990}"/>
<socket-binding name="management-https" interface="specific-ip-interface" port="${jboss.management.https.port:9443}"/>
<socket-binding name="ajp" port="8009"/>
4Configure Portal portal-ext.properties
cluster.link.enabled=true
lucene.replicate.write=true
5Test cluster server
5.1Visit URL http://localhost, you will see apache server default page.
5.2Visit URL http://localhost/c/portal/login twice with two browsers, you will see
the same page which response by master node as below.
5.3Shut down master node, observe the page from salve node as below.