En écrivant cet article, j'ai tellement galéré à installé mod_jk, que j'ai basculé vers une installation avec mod_proxy, un autre module apache qui permet de conserver apache en frontal et de faire du reverse proxy sur tomcat.

Cet article est donc obsolète, du moins dans un premier temps je vous conseille uen configuration avec mod_proxy plus simple à mettre en place.

Objectifs

L'objectif de cet article est de présenter l'installation d'un Apache Tomcat derrière un serveur Apache HTTP

via le connecteur mod_jk.

Cette installation est utile dans le cadre d'une application web Java pour laquelle

on souhaite fournir une url simplifiée aux utilisateurs.

Principe

Le principe est de permettre le dialogue entre votre serveur Apache frontal, et votre serveur Apache Tomcat afin

de faciliter la connexion de ces outils et permettre une redirection transparente de votre application Web.

Le chemin logique sera le suivant :

Requete HTTP -> Serveur Apache HTTP -> Module JK de Apache HTTP -> Application Web Java sous Tomcat

Prérequis :

Avoir installé Apache-Tomcat

Avoir installé Apache HTTP Server

Installation :

  • Récupérer le module mod_jk util à connecter Apache sur Tomcat. POur ce faire, sous debian :
apt-get install libapache2-mod-jk
  • Configurer le module mod_jk, cette étape permet de déclarer le module à Apache pour pouvoir l'utiliser.

Pour ce faire, ouvrer un fichier dans /etc/apache2 nommé workers.properties

vi /etc/apache2/workers.properties

Puis, ajoutez y le sligne suivantes pour indiquer à Apache où setrouve votre répertoire Tomcat :

workers.tomcat_home=/usr/local/apache-tomcat-6.0.20
workers.java_home=/usr/local/java-6-openjdk
ps=/
worker.list=default
worker.default.port=8009
worker.default.host=localhost
worker.default.type=ajp13
worker.default.lbfactor=1

  • Activer la configuration du module mod_jk sous Apache

Pour ce faire ajoute run fichier dans le répertoire /etc/apache2/conf.d nommé jk.conf

vi /etc/apache2/conf.d/jk.conf
Puis y ajouter les ligne suivantes :
<ifmodule mod_jk.c>
JkWorkersFile /etc/apache2/workers.properties
JkLogFile /var/log/apache2/mod_jk.log
JkLogLevel error
</ifmodule>
  • Créer un virtual host pour l'application que vous voulez connecter derrière votre ApacheHTTP.

Pour ce faire il faut créer un fichier de VirtualHost,

donc éditer un fichier monvirtualhost dans /etc/apache2/sites-available

vi /etc/apache2/sites-available/monvirtualhost
Puis y ajouter les lignes suivantes pour déclarer votre application derrière apache tomcat :
<virtualhost mondomaine.fr>
JkMount /*.jsp default
ServerName mondomaine ServerAdmin moi@mondomaine.com
DocumentRoot /usr/local/apache-tomcat-6.0.20/webapps/monapplication ErrorLog /var/log/apache2/monapplication-error.log
CustomLog /var/log/apache2/monapplication-access.log common
<directory /usr/local/apache-tomcat-6.0.20/webapps/monapplication>
Options -Indexes
</directory>
</virtualhost>
  • Redémarrer votre serveur apache http pour qu'il prenne en compte les modifications :
/etc/init.d/apache2 restart
  • Tester votre installation
http://mondomaine.fr

Normalement, votre serveur Apache recevra la requête puis la redirigera

vers la racine de votre application web Java hébergée par Tomcat.