Autres versions

Vous êtes ici : Installer et exploiterInstallationServeur applicatifTomcat

Configuration AJP de Tomcat

Cette page décrit les étapes de configuration du connecteur AJP de Tomcat sur le serveur applicatif.

Configuration du connecteur

Le fichier à éditer est /opt/tomcat/conf/server.xml

Connecteur HTTP
Supprimer ou mettre en commentaire la balise XML Connector correspondant au protocole HTTP

Connecteur AJP
Modifier ou créer la balise XML Connector correspondant au protocole AJP et ainsi permettre à Tomcat d'être interrogé via le protocole AJP 1.3.
Cette balise doit se trouver dans la déclaration XML du Service se nommant "Catalina" (ce service existe déjà dans Tomcat).

Note importante GhostCat
Suite à la faille GhostCat sur le protocole AJP, un nouveau paramètre est devenu obligatoire à partir de tomcat 8.5.51.
Il faut ajouter au connecteur AJP un nouvel attribut nommé secret et lui attribuer une valeur (une chaîne alphanumérique d'une20aine de caractères par exemple).
Cette valeur doit être reportée dans la configuration des workers apache httpd (cf la déclaration du worker d'Apache)
Si votre environnement ne permet pas d'appliquer ce nouveau paramètre (librairie mod_jk obsolète par exemple), vous devez ajouter l'attribut secretRequired="false" à la place
<?xml version="1.0" encoding="UTF-8"?>
<Server port="8005" shutdown="SHUTDOWN">
    <Listener className="org.apache.catalina.startup.VersionLoggerListener"/>
    <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on"/>
    <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener"/>
    <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener"/>
    <Service name="Catalina">
        <Connector port="8009" protocol="AJP/1.3" connectionTimeout="60000" maxThreads="150" URIEncoding="UTF-8"
         secret="mettre_ici_la_valeur_de_votre_secret"/>
        <Engine name="Catalina" defaultHost="localhost">
            <Host name="localhost" autoDeploy="false" unpackWARs="false" deployOnStartup="false">
                <Context docBase="/web/ksup/webapp" path="" crossContext="true" allowLinking="false"/>
                <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
                       prefix="localhost_access_log" suffix=".txt"
                       pattern="%h %l %u %t '%r' %s %b"/>
            </Host>
        </Engine>
    </Service>
</Server>

En fonction de votre environnement et des usages de votre application, il peut être nécessaire d'adapter les paramètres suivants :

  • port : port d'écoute du connecteur HTTP de Tomcat, par défaut 8009. Cette valeur est utilisée dans la déclaration du worker d'Apache.
  • connectionTimeout : temps durant lequel une connexion acceptée par Tomcat peut être mise en attente (milliseconde)
  • maxThreads : nombre maximum de "thread" Java que pourra exécuter Tomcat en même temps
Remarque : il est fortement recommandé de désactiver tous les autres "Connector" présents dans le fichier "server.xml".

En fonction de votre environnement il peut être nécessaire d'adapter le paramètre allowLinking :

  • allowLinking : changer la valeur à "true" si vous utilisez des liens symboliques pour certains dossiers de l'application
Remarque : il est fortement recommandé de désactiver tous les autres "Host" présents dans le fichier "server.xml".

Mis à jour le 7 février 2023