7.2.2 A l’aide de mod_proxy_ajp

Cette configuration utilise le module externe Apache mod_proxy_ajp afin d’équilibrer la charge au sein de la grappe JBoss avec le protocole AJP. Ce module nécessite le module mod_proxy. Par conséquent, les modules mod_proxy et mod_proxy_ajp doivent être tous deux présents sur le serveur pour pouvoir gérer le protocole AJP.

Ce module est utilisé pour inverser le proxy vers un serveur d’applications d’arrière-plan en utilisant le protocole AJP. Son utilisation est semblable à celle d’un proxy inverse HTTP à l’exception du préfixe ajp:// utilisé :

Annulez la mise en commentaire des configurations de module suivantes dans le fichier RACINE_APACHE/conf/httpd.conf.

LoadModule proxy_module modules/mod_proxy.so 
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so 
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so

Ajoutez la configuration suivante au fichier RACINE_APACHE/conf/httpd.conf.

<VirtualHost *:80> 
ServerName lb.xyz.com 
ServerAlias lb.xyz.com 
ProxyRequests Off 
ProxyPreserveHost On 
<Proxy balancer://cluster> 
BalancerMember ajp://abc.com:8009 route=node1 
BalancerMember ajp://xyz.com:8009 route=node2 
ProxySet lbmethod=byrequests 
</Proxy> 
ProxyPass / balancer://cluster/ stickysession=JSESSIONID|jsessionid 
</VirtualHost>

Aucune directive ProxyPassReverse n’est généralement nécessaire. La demande AJP comprend l’en-tête d’hôte d’origine donné au proxy et le serveur d’applications doit générer les en-têtes auto-référencées correspondant à cet hôte. Par conséquent, aucune réécriture n’est nécessaire.

Configuration côté serveur :

  1. 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/<nom_profil>/deploy/jbossweb.sar.

  2. Dans le fichier server.xml, recherchez l’élément Engine name et ajoutez un attribut jvmRoute. Par exemple, sur un nœud appelé node1, modifiez l’élément de la façon suivante : <Engine name="jboss.web" defaultHost="localhost" jvmRoute="node1">

  3. Enregistrez le fichier server.xml modifié.

    Remarque : pour chaque grappe, la valeur du nœud de jvmRoute doit être unique et correspondre à la valeur de l’itinéraire du worker se connectant au serveur JBoss respectif (voir la configuration de BalancerMember dans le fichier httpd.conf).