vendredi 27 janvier 2012

Load balancing JK - apache2 - JBoss


Sommaire

  • 1 Produits utilisés
  • 2 Schéma de déploiement du Load Balancer
  • 3 Installation du module apache2 JK
  • 4 Configuration du module JK
  • 5 Configuration des serveurs JBoss & activation du protocole AJP/1.3

 Produits utilisés

- JBoss 4.2.3 GA
- Apache2.2.x
- module apache2 JK 1.2.31


Schéma de déploiement du Load Balancer

Installation du module apache2 JK

1- Télécharger le module apache2 suivant : mod_jk-1.2.31-httpd-2.2.x.so ou
wget http://mirror.ibcp.fr/pub/apache//tomcat/tomcat-connectors/jk/binaries/linux/jk-1.2.31/i386/mod_jk-1.2.31-httpd-2.2.x.so
2- Copier le fichier .so dans le répertoire module du server web apache
cp mod_jk-1.2.31-httpd-2.2.x.so /usr/lib/apache2/modules/mod_jk.so

Configuration du module JK

1- Dans le fichier httpd.conf du server web apache2, ajouter les lignes suivantes : /etc/apache2/httpd.conf
LoadModule jk_module /usr/lib/apache2/modules/mod_jk.so

# Where to find workers.properties
# Update this path to match your conf directory location (put workers.properties next to httpd.conf)
JkWorkersFile Workers.properties
# Where to put jk shared memory
# Update this path to match your local state directory or logs directory
JkShmFile logs/mod_jk.shm
# Where to put jk logs
# Update this path to match your logs directory location (put mod_jk.log next to access_log)
JkLogFile logs/mod_jk.log
# Set the jk log level [debug/error/info]
JkLogLevel info
# Select the timestamp log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
#JkMount /* loadbalancer
#JkMount /index.php loadbalancer
#JkMount /jmx-console/* loadbalancer
#JkMount /jkstatus loadbalancer
JkMount /gsi_engine/* loadbalancer

        StartServers 5
        MaxClients 150
        MinSpareThreads 25
        MaxSpareThreads 75
        ThreadsPerChild 25
        MaxRequestsPerChild 0

2- Créer le fichier Workers.properties dans /etc/apache2/
# Define 1 real worker using ajp13

worker.list=loadbalancer,status
# Set properties for worker1 (ajp13) JBoss 1
worker.worker1.type=ajp13
worker.worker1.host=10.0.3.61
worker.worker1.port=8109
worker.worker1.lbfactor=1
worker.worker1.connection_pool_size=10
worker.worker1.redirect=worker2
# Set properties for worker2 (ajp13) JBoss2
worker.worker2.type=ajp13
worker.worker2.host=10.0.3.58
worker.worker2.port=8109
worker.worker2.lbfactor=1
worker.worker2.connection_pool_size=10
#fonctionnement de l'equilibrage de charge
worker.loadbalancer.type=lb
worker.loadbalancer.balance_workers=worker1,worker2
worker.loadbalancer.sticky_session=True
worker.status.type=status
# Disable worker3 for all requests except failover
worker.worker2.activation=disabled
3- Créer le fichier uriworkermap.properties dans /etc/apache2/
/status=status
4- Créer le répertoire de log pour le module JK
mkdir /etc/apache2/logs
5- Redémarrer le server apache2
/etc/init.d/apache2 restart

Configuration des serveurs JBoss & activation du protocole AJP/1.3

Pour chaque Serveur JBoss, il faut faire 1- Dans le fichier de config $JBOSS_HOME/server/$SERVER_INSTANCE/deploy/jboss-web.deployer/META-INF/jboss-service.xml, modifier la balise suivante :
false
true
2- Dans le fichier de config $JBOSS_HOME/server/$SERVER_INSTANCE/deploy/jboss-web.deployer/server.xml, décommenter le bloc suivant pour activer l'AJP/1.3 :
    

3- Redémarrer le server JBoss
/etc/init.d/jboss restart

Aucun commentaire: