Mod proxy ajp

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Domaine Répartition de charge / reverse proxy Apache
Module mod_proxy_ajp (+ mod_proxy, mod_proxy_balancer)
Protocole AJP (Apache JServ Protocol), port 8009 par défaut
Voir aussi ZXTM

mod_proxy_ajp est le module Apache HTTPD qui permet de faire transiter les requêtes vers un ou plusieurs serveurs Tomcat via le protocole AJP (Apache JServ Protocol), plutôt qu'en HTTP classique. AJP est un protocole binaire orienté paquets, plus efficace que HTTP pour la communication entre Apache et un conteneur Java (Tomcat, Jetty), et conçu pour préserver les informations de la requête d'origine (IP client, en-têtes) lors du passage par le proxy.

Configuration type

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

<Proxy balancer://tomcat-cluster>
    BalancerMember ajp://app1.exemple.local:8009
    BalancerMember ajp://app2.exemple.local:8009
</Proxy>

ProxyPass /app balancer://tomcat-cluster/app
ProxyPassReverse /app balancer://tomcat-cluster/app

À savoir

AJP reste utile quand le backend est spécifiquement Tomcat/Jetty et qu'on veut éviter la double conversion HTTP↔AJP↔HTTP. Cela dit, pour la plupart des usages actuels, un simple mod_proxy_http (reverse proxy HTTP standard, HTTP/1.1 voire HTTP/2) ou un répartiteur dédié (Nginx, HAProxy) est plus simple à opérer et suffit largement — AJP a surtout un intérêt historique là où Tomcat est intégré derrière un frontal Apache existant.

Voir aussi

  • ZXTM — répartiteur de charge logiciel dédié (alternative à un reverse proxy Apache)