7.2.1 A l’aide de mod_jk

Cette configuration utilise le module externe Apache mod_jk afin d’équilibrer la charge au sein de la grappe JBoss avec le protocole AJP. Elle offre la prise en charge du protocole AJP (Apache JServ Protocol).

Effectuez la configuration de la façon suivante :

  1. A partir du site Apache Tomcat Connectors, téléchargez le fichier du module externe mod_jk correspondant à votre système d’exploitation.
    Remarque : vérifiez que votre serveur Apache prend en charge le fichier de module externe mod_jk téléchargé.
  2. Renommez le fichier téléchargé en lui attribuant le nom mod_jk.so et enregistrez-le dans le répertoire RACINE_APACHE/modules/.

  3. Dans un éditeur de texte, ouvrez le fichier httpd.conf du répertoire RACINE_APACHE/conf, puis ajoutez la ligne suivante à la fin du fichier : Include conf/mod-jk.conf

  4. Créez un fichier RACINE_APACHE/conf/mod-jk.conf avec le contenu suivant :

    # Load mod_jk module 
    # Specify the filename of the mod_jk lib 
    LoadModule jk_module modules/mod_jk.so 
    # Where to find workers.properties 
    JkWorkersFile conf/workers.properties 
    # Where to put jk logs 
    JkLogFile logs/mod_jk.log 
    # Set the jk log level [debug/error/info] 
    JkLogLevel info 
    # Select the log format 
    JkLogStampFormat "[%a %b %d %H:%M:%S %Y]" 
    # JkOptions indicates to send SSK KEY SIZE 
    JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories 
    # JkRequestLogFormat 
    JkRequestLogFormat "%w %V %T" 
    # Mount your applications 
    JkMount /* loadbalancer 
    # You can use external file for mount points. 
    # It will be checked for updates each 60 seconds. 
    # The format of the file is: /url=worker 
    # /examples/*=loadbalancer 
    #JkMountFile conf/uriworkermap.properties 
    # Add shared memory. 
    # This directive is present with 1.2.10 and 
    # later versions of mod_jk, and is needed 
    # for load balancing to work properly 
    JkShmFile logs/jk.shm 
    # Add jkstatus for managing run-time data 
    <Location /jkstatus/> 
    JkMount status 
    Order deny,allow 
    Deny from all 
    Allow from 127.0.0.1 
    </Location>
  5. Créez un fichier à l’emplacement conf/workers.properties avec le contenu suivant :
    # for mapping requests 
    worker.list=loadbalancer,status 
    # Define Node1 
    # modify the host as your host IP or DNS name. 
    worker.node1.port=8009 
    worker.node1.host=node1.mydomain.com 
    worker.node1.type=ajp13 
    worker.node1.lbfactor=1 
    worker.node1.cachesize=10 
    # Define Node2 
    # modify the host as your host IP or DNS name. 
    worker.node2.port=8009 
    worker.node2.host= node2.mydomain.com 
    worker.node2.type=ajp13 
    worker.node2.lbfactor=1 
    worker.node2.cachesize=10 
    # Load-balancing behavior 
    worker.loadbalancer.type=lb 
    worker.loadbalancer.balance_workers=node1,node2 
    worker.loadbalancer.sticky_session=1 
    #worker.list=loadbalancer 
    # Status worker for managing load balancer 
    worker.status.type=status
  6. Dans le fichier, définissez les éléments suivants :
    • chaque nœud de la grappe (dans cet exemple, les deux nœuds nommés node1 et node2) ;

    • ajoutez tous les nœuds définis dans le fichier à l’entrée worker.loadbalancer.balance_workers.

  7. Pour chacun des nœuds au sein de la grappe, ouvrez pour modification le fichier server.xml situé à l’emplacement : [racine du serveur d'applications]/server/all/deploy/jbossweb.sar

  8. Dans le fichier server.xml, recherchez l’élément Engine name et ajoutez un attribut jvmRoute. Par exemple, pour un nœud nommé node1 :<Engine name="jboss.web" defaultHost="localhost" jvmRoute="node1">

  9. Enregistrez le fichier server.xml modifié.
    Remarque : la valeur de jvmRoute doit être unique pour chaque nœud de la grappe et correspondre au worker qui se connecte au serveur JBoss respectif.