Configuring Jboss Cluster using Apache JK Module:
Jboss clustering is used to enable
application failover and load balancing.
To configure jboss cluster, you need to Jboss Application Servers with
similar configuration and one apache server.
Apache can also be configured on any one of the jboss application
server.
Please follow the below steps to configure
a jboss cluster using Apache JK Module.
1. Install
apache 2.0.x server.
2. Download
and install JK module from apache.org. If the JK module is installed, you would find
a file with name mod_jk.so in /etc/httpd/modules folder provided the apache
(http) server’s configuration files reside in /etc/httpd folder.
3. Load
the JK module by adding below line /etc/httpd/conf/httpd.conf file (Apache
Configuration File)
LoadModule jk_module modules/mod_jk.so
4. Once
the module is loaded, add the following entries at the end of the /etc/httpd/conf/httpd.conf
(Apache configuration file)
<IfModule mod_jk.c>
include conf/modjk.conf
</IfModule>
5. Now create
modjk.conf file in /etc/httpd/conf folder with the following contents
JkLogFile logs/modjk.log
JkLogLevel info
JkWorkersFile conf/jkworkers.properties
JkMountFile conf/jkmount.properties
<Location /status/>
JkMount jkstatus
Order deny,allow
Allow from all
</Location>
6. Once
modjk configuration file is created, create the jkworkers.properties file in
/etc/httpd/conf/ with the following contents.
worker.list=jboss,jkstatus
# Entries for 1st node
worker.node1.type=ajp13
worker.node1.host=10.154.2.202 ## IP address of 1st node
worker.node1.port=8009
worker.node1.lbfactor=1
worker.node1.disabled=false
worker.node1.socket_timeout=10
worker.node1.connect_timeout=20000
# Entries for 2nd node
worker.node2.type=ajp13
worker.node2.host=10.154.2.186 ## IP address of 2nd node
worker.node2.port=8009
worker.node2.lbfactor=1
worker.node2.disabled=false
worker.node2.socket_timeout=10
worker.node2.connect_timeout=20000
#Load Balancer
worker.jboss.type=lb
worker.jboss.balance_workers=node1,node2
worker.jboss.sticky_session=true
worker.jboss.sticky_session_force=false
worker.jboss.method=R
worker.jboss.lock=P
worker.jkstatus.type=status
7. Now,
create the jkmount.properties file in /etc/httpd/conf/ folder with the
following contents
/jmx-console*=jboss
/application/* = jboss
Replace your application url in place of “/application/*” above
i.e. if your application is url is http://jbossserver:8080/myapp replace “/myapp/*”
with “/aplication/*”
8. Restart
httpd (apache) server.
Now, we have completed the apache configuration however the jboss
configuration is still pending.
9. Copy
server/all to server/nodex.
10.Add jvm
route to differentiate jboss instances by updating. To add jvm route, locate a line which
contains “<Engine name=jboss.web defaultHost=localhost>” in $JBOSS_HOME/deploy/jboss-web.deployer/server.xml
file and replace it with “<Engine name=jboss.web defaulHost=localhost
jvmRoute=nodex)”
11.
Now,
as a last step, enable JK Module in Jboss.
To enable JK Module, locate a line which contains “<attribute name=UseJK>
false </attribute>” and replace it with “<attribute name=UseJKtrue </attribute>”
in $JBOSS_HOME/server/nodex/deploy/jboss-web.deployer/META-INF/jboss-service.xml
file
12.
Repeat
steps 9,10 & 11 for all the Jboss Nodes.
You need to replace nodex with the appropriate node number i.e. node1,
node2 etc.
13.
Restart
jboss application server with new profile i.e. node1, node2 etc.
Deploying Web Applications:
You need to deploy the applications on any
node in server/profile/farm folder. Replace profile with the appropriate
profile i.e. node1, node2 etc based upon the node on which you are deploying
your applications. Once application is
deployed on any one node in the cluster, the cluster service will copy those
applications on other nodes automatically and the application would be
available on all the nodes.
Accessing the Web Applications:
The application can now be accessed
directly by accessing the apache http server url i.e.http://httpserver/application. Replace
httpserver with domainname or ip address of http server and application with
the application you configured in jkmount.properties file. The additional port
number is not required to access the Web application. The JK module will
automatically forward the request to specific port on JBOSS Application Server.
0 comments:
Post a Comment