Tuesday, August 11, 2009

Load Balance by using mod_jk + apache server2.0

1)Add following code to C:/Program Files/Apache Group/Apache2/conf/httpd.conf
# Include mod_jk configuration file
Include "C:/Program Files/Apache Group/Apache2/mod_jk/mod_jk.conf"


2)Create mod_jk.conf to C:/Program Files/Apache Group/Apache2/mod_jk/mod_jk.conf
# Load mod_jk module
# Specify the filename of the mod_jk lib
LoadModule jk_module "C:/Program Files/Apache Group/Apache2/mod_jk/mod_jk-1.2.28-httpd-2.0.52.so"

# Where to find workers.properties
JkWorkersFile "C:/Program Files/Apache Group/Apache2/mod_jk/workers.properties"

# Where to put jk logs
JkLogFile "C:\Program Files\Apache Group\Apache2\mod_jk/mod_jk.log"

JkLogLevel info

JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "

JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories

JkRequestLogFormat "%w %V %T"

#Mount your webapps eg WebApplication1 using JkMount

# 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 /var/log/apache2/jk.shm
JkMount /* router

<Location /router/>
JkMount router
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Location>

3) Create worker.properties on C:\Program Files\Apache Group\Apache2\mod_jk\worker.properties
# The advanced router LB worker
worker.list=router

# Define a worker using ajp13
worker.worker1.port=8009
worker.worker1.host=127.0.0.1
worker.worker1.type=ajp13
worker.worker1.lbfactor=1
# Define preferred failover node for worker1
worker.worker1.redirect=worker2

# Define another worker using ajp13
worker.worker2.port=8009
worker.worker2.host=127.0.0.1
worker.worker2.type=ajp13
worker.worker2.lbfactor=1
# Disable worker2 for all requests except failover
worker.worker2.activation=disabled
# Define the LB worker
worker.router.type=lb
worker.router.balance_workers=worker1,worker2

4) Download iso mod_jk-1.2.28-httpd-2.0.52.so from http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.28/
to C:\Program Files\Apache Group\Apache2\mod_jk\

5) For sticky session
Edit tomcat's server.xml for all tomcat
Comment <!-- <Engine name="Catalina" defaultHost="localhost"> -->
Uncomment <Engine name="Standalone" defaultHost="localhost" jvmRoute="worker1">

References
Step by step - http://www.devside.net/guides/windows/tomcat

Help for worker.properties
http://tomcat.apache.org/connectors-doc/reference/workers.html
http://tomcat.apache.org/connectors-doc/generic_howto/loadbalancers.html


No comments: