Chapter 4. Configuration example for load-balancing with mod_proxy_cluster
You can configure JBCS to use the mod_proxy_cluster connector for load-balancing in a Red Hat Enterprise Linux system.
When you want to configure a load-balancing solution that uses mod_proxy_cluster, you must perform the following tasks:
4.1. Setting up JBCS as a proxy server Copy linkLink copied to clipboard!
When you configure JBCS to use mod_proxy_cluster, you must set up JBCS as a proxy server by specifying configuration details in the mod_proxy_cluster.conf file.
Procedure
-
Go to the
JBCS_HOME/httpd/conf.d/directory. -
Create a file named
mod_proxy_cluster.conf. Enter the following configuration details:
LoadModule proxy_cluster_module modules/mod_proxy_cluster.so LoadModule cluster_slotmem_module modules/mod_cluster_slotmem.so LoadModule manager_module modules/mod_manager.so LoadModule advertise_module modules/mod_advertise.so MemManagerFile cache/mod_proxy_cluster <IfModule manager_module> Listen 6666 <VirtualHost *:6666> <Location /> Require ip 127.0.0.1 </Location> ServerAdvertise on EnableMCMPReceive <Location /mod_cluster_manager> SetHandler mod_cluster-manager Require ip 127.0.0.1 </Location> </VirtualHost> </IfModule>ImportantAs shown in the preceding example, the
mod_proxy_clusterpackage requires that you set theMemManagerFiledirective in theconf.dfile tocache/mod_proxy_cluster.If you specify the
EnableMCMPReceivedirective in your virtual host, the Apache HTTP Server requires that you always useLocationelements rather thanDirectoryelements in the virtual host definition. From JBCS 2.4.62 onward, the Apache HTTP Server does not support the use ofDirectoryelements and theEnableMCMPReceivedirective within the same virtual host. If you specify aDirectoryelement and theEnableMCMPReceivedirective within the same virtual host, the Apache HTTP Server fails to start and logs an error indicating that you should use aLocationelement instead. The startup failure was introduced in JBCS 2.4.62 as a breaking change that is not compatible with earlier releases.NoteThe preceding example shows how to set up JBCS as a proxy server that is listening on
localhost.
4.2. Configuring a Tomcat worker node Copy linkLink copied to clipboard!
When you configure JBCS to use mod_proxy_cluster, you must configure a Tomcat worker node by adding a Listener element to the server.xml file.
Prerequisites
- You have set up JBCS as a proxy server.
Procedure
-
Open the
JWS_HOME/tomcat<VERSION>/conf/server.xmlfile. Add the following
Listenerelement:<Listener className="org.jboss.modcluster.container.catalina.standalone.ModClusterListener" advertise="true"/>
4.3. Defining iptables firewall rules example Copy linkLink copied to clipboard!
When you configure JBCS to use mod_proxy_cluster, you must define firewall rules by using iptables.
Prerequisites
- You have configured a Tomcat worker node.
Procedure
Use
iptablesto define a set of firewall rules.For example:
/sbin/iptables -I INPUT 5 -p udp -d 224.0.1.0/24 -j ACCEPT -m comment --comment "mod_proxy_cluster traffic" /sbin/iptables -I INPUT 6 -p udp -d 224.0.0.0/4 -j ACCEPT -m comment --comment "JBoss Cluster traffic" /sbin/iptables -I INPUT 9 -p udp -s 192.168.1.0/24 -j ACCEPT -m comment --comment "cluster subnet for inter-node communication" /sbin/iptables -I INPUT 10 -p tcp -s 192.168.1.0/24 -j ACCEPT -m comment --comment "cluster subnet for inter-node communication" /etc/init.d/iptables saveNoteThe preceding example shows to define firewall rules for a cluster node on the
192.168.1.0/24subnet.