mod_jk : Apache & tomcat

A chaque fois que j’essaie de configurer un tomcat derrière un serveur apache, je tombe toujours sur les mêmes problèmes, je perds toujours du temps à retrouver les mêmes solutions dans les documentations. C’est pour cela que j’écris cet article que j’espère le plus simple et pratique que possible.
Après avoir installé les deux serveurs, il faut télécharger le module apache mod_jk (la version 1.2) sur ce site : http://tomcat.apache.org/download-connectors.cgi.
Déposer le fichier mod_jk.so (qui se trouve dans l’archive téléchargée) dans le répertoire $APACHE_HOME/modules/. Pour configurer ce connecteur, deux fichiers sont nécessaires
- workers.properties : permet au connecteur de se connecter au serveur tomcat.
- httpd.conf : permet au connecteur de rediriger les requêtes HTTP vers le serveur tomcat.
Voici un fichier worker.properties exemple :
# La liste des workers worker.list= worker1, jkstatus # Configuration du worker1 : connexion à tomcat worker.worker1.type=ajp13 worker.worker1.host=localhost worker.worker1.port=8009 # Configuration de jkstatus : agrège des statistiques sur le connecteur worker.jkstatus.type=status
Voici quelques lignes à ajouter au fichier httpd.conf pour configurer mod_jk :
LoadModule jk_module modules/mod_jk.so JkWorkersFile workers.properties JkLogFile /usr/local/apache/logs/mod_jk.log JkLogLevel info JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
Une fois cette communication faite il faut rendre les applications tomcat visibles depuis Apache. Cette étape peut être aussi bien réalisée à partir du fichier httpd.conf que worker.properties. Par exemple, voici la directive à ajouter au fichier de configuration du serveur Apache :
JkMount /my-webapplication/* worker1 JkMount /my-webapplication worker1 JkMount /jkstatus* jkstatus
Il existe beaucoup d’autre façons de configurer ces deux serveurs. Pour plus d’information voici quelques sites qui décrivent dans les détails les différentes configurations possibles :