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 :
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.
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">
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).