Apache est un serveur Web : il reçoit des requêtes HTTP émises depuis un navigateur, les analyse et envoie des pages Web en réponse au navigateur.
Lorsque les requêtes HTTP concernent des pages JSP (Java Server Pages), du code Java doit être exécuté pour construire les pages Web qu'Apache doit renvoyer au navigateur. Pour cela, Apache s'appuie sur un moteur de servlets qui prend en charge cette partie du traitement. Tomcat est l'un des moteurs de servlets les plus utilisés.
Pour communiquer entre eux, Apache et Tomcat utilisent un module intermédiaire, tel que mod_jk.
L'objet de cette fiche est de présenter les différentes étapes de l'installation de base d'Apache, Tomcat et mod_jk.
Il faut commencer par installer le paquet apache2, ainsi que d'autres paquets apache et php qui peuvent s'avérer utiles.
Installez-les suivant la procédure habituelle propre à votre distribution.
Par exemple, avec Debian :
Apache2 est en général installé dans /etc/apache2. Ce répertoire contient apache2.conf, le fichier de configuration principal d'Apache.
Remarque : apache2.conf peut faire appel à d'autres fichiers de configuration, via la directive "Include". Ainsi, lorsqu'on décrit des modifications à apporter à apache2.conf, il se peut selon les configurations que ces modifications soient à apporter dans d'autres fichiers inclus par apache2.conf.
Depuis un navigateur, aller à l'adresse http://localhost/. Une page vide doit s'afficher.
Il faut ensuite activer les modules ssl, rewrite, suexec et include d'Apache : il s'agit de créer depuis le répertoire /etc/apache2/mods-enabled des liens symboliques vers les modules du répertoire /etc/apache2/mods-available dont on a besoin :
$ a2enmod ssl $ a2enmod rewrite $ a2enmod suexec $ a2enmod include
Ensuite, il faut relancer Apache :
Tomcat a besoin des bibliothèques Java disponibles dans le paquet contenant le JDK (Java Development Kit).
Installez-les suivant la procédure habituelle propre à votre distribution.
Pour l'installer (par exemple depuis Debian) :
Pour ne pas avoir besoin de modifier tous les fichiers de configuration lorsque vous changerez de version de JDK, on va utiliser un lien symbolique /usr/lib/jdk qui pointera sur la version de JDK de votre choix :
Il faut commencer par installer les paquets tomcat qui nous seront utiles.
Installez-les suivant la procédure habituelle propre à votre distribution.
Par exemple, avec Debian :
Pour ne pas avoir besoin de modifier tous les fichiers de configuration lorsque vous changerez de version de Tomcat, on va utiliser un lien symbolique /usr/lib/apache-tomcat qui pointera sur la version de Tomcat de votre choix :
Remarque : ce répertoire est référencé en tant que CATALINA_HOME dans la documentation Tomcat.
Tomcat est en général installé dans /etc/tomcatxxx. Ce répertoire contient entre autres les fichiers de configuration suivants :
<?xml version='1.0' encoding='utf-8'?> <tomcat-users> <role rolename="manager"/> <role rolename="tomcat"/> <role rolename="admin"/> <user username="tomcat" password="tomcat" roles="tomcat"/> <user username="admin" password="admin" roles="tomcat,manager,admin"/> </tomcat-users>
$ /usr/lib/apache-tomcat/bin/shutdown.sh $ /usr/lib/apache-tomcat/bin/startup.sh
Installez-les suivant la procédure habituelle propre à votre distribution.
Par exemple, sous Debian :
Cette commande crée en particulier un fichier /usr/lib/apache2/modules/mod_jk.so correspondant au module mod_jk.
Tout d'abord, il faut indiquer à Apache comment utiliser mod_jk :
workers.tomcat_home=/usr/lib/apache-tomcat workers.java_home=/usr/lib/jdk ps=/ worker.list=worker1 worker.worker1.port=8009 worker.worker1.host=localhost worker.worker1.type=ajp13 worker.worker1.lbfactor=1
worker1 (on peut modifier ce nom) correspond aux caractéristiques du module mod_jk qui sera utilisé pour communiquer avec Tomcat : port 8009, machine localhost, protocole ajp13...
# Charger le module mod_jk LoadModule jk_module /usr/lib/apache2/modules/mod_jk.so # Chemin du fichier workers.properties JkWorkersFile /etc/apache2/workers.properties # Fichier contenant la mémoire partagée JkShmFile /var/log/apache2/mod_jk.shm # Fichier de log de mod_jk JkLogFile /var/log/apache2/mod_jk.log # Niveau d'information : [info/error/debug] JkLogLevel debug # Format du nom des fichiers de log JkLogStampFormat "[%a %b %d %H:%M:%S %Y] " # JkOptions indique d'envoyer la taille de la clé SSL JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories # Format du log de la requête JkRequestLogFormat "%w %V %T" # Lorsque le chemin des pages Web demandées correspondent aux schémas suivants, # Apache doit les transférer à Tomcat via worker1 (à adapter en fonction des besoins) # le répertoire jsp-examples de Tomcat contient des examples d'utilisation de servlets, # et peut être utile pour tester la configuration JkMount /jsp-examples worker1 JkMount /jsp-examples/* JkMount /tests/*.jsp
Il faut aussi faire figurer la référence à worker1 lors de la définition des hôtes virtuels (exemple : /etc/apache2/sites-enabled/000-default) :
<VirtualHost *> ... JkMount /jsp-examples/* worker1 </VirtualHost>
$ /usr/lib/apache-tomcat/bin/shutdown.sh $ /usr/lib/apache-tomcat/bin/startup.sh $ /etc/init.d/apache2 restart
Remarque : il faut toujours lancer Tomcat en premier : lors du lancement d'Apache, le fichier de configuration de mod_jk est lu, et Apache sait alors qu'à tout moment il peut communiquer avec Tomcat via le port 8009. Il est donc préférable de lancer préalablement Tomcat, qui sera en attente de requêtes sur le port 8009.
A ce stade, vous pouvez :
@ Retour à la rubrique Réseau et sécurité
© 2008 Utilisateur:Nulix31
![]() ![]() ![]() |
Ce document est publié sous licence Creative Commons Attribution, Partage à l'identique 3.0 : http://creativecommons.org/licenses/by-sa/3.0/ |