1. Sticky Session
User request will always goes to same Liferay instance
2. Session Replication
User request can go to any tomcat in cluster and his session is copied on entire cluster
Lets get started for Sticky Session based clustering and load balancing.
Use-Case
Setting up two tomcat Liferay along with apache on same windows machine.
Pre-requirements
1. install Apche 2.x
2. download Liferay5.x and make an extra copy
Steps 1. open httpd.conf from apache_home/conf/ and add these lines at the end
BalancerMember ajp://localhost:8009/ route=tomcatA smax=15 max=50 loadfactor=20
BalancerMember ajp://localhost:8010/ route=tomcatB smax=15 max=50 loadfactor=20
ProxyPass balancer://mycluster/ stickysession=JSESSIONID
SetHandler balancer-manager
Order Deny,Allow
Deny from all
Allow from localhost
Step 2.
uncomment the following four lines on httpd.conf
LoadModule proxy_module modules/mod_proxy.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
Step 3.
open liferay/tomcat_home_1/conf/server.xml and add jvmRoute="tomcatA" to the following line
Engine name="Catalina" defaultHost="localhost"
so it should look like this
Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcatA"
Step 4.
open liferay/tomcat_home_2/conf/server.xml and add jvmRoute="tomcatB" to the following line
Engine name="Catalina" defaultHost="localhost"
so it should look like this
Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcatB
also change the following port nos
Server port="8006" shutdown="SHUTDOWN"
Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8444"
Connector port="8010" protocol="AJP/1.3" redirectPort="8444"
Thats It!
start apache, tomcatA, tomcatB and
navigate to http://localhost/
also checkout balancer-manager
http://localhost/balancer-manager
for more configuration and understanding checkout the following link
http://httpd.apache.org/docs/2.2/mod/mod_proxy.html
If your tomcats run on different server make sure you change index directory to some central place (e.g /common-dir/liferay ) i.e resource.repositories.root=/common-dir/liferay in portal-ext.properties
An Important Liferay article
http://www.liferay.com/web/guest/community/wiki/-/wiki/Main/Clustering