Pour que les utilisateurs de vos applications Tomcat n’aient plus à mémoriser leurs ports, nous pouvons utiliser un module d’apache permettant de discuter avec le serveur Tomcat de manière invisible (Mod_jk).
Exemple :
http://monappli.mondomaine.fr:8080/MonAppli deviendra http://monappli.mondomaine.fr/MonAppli
Dans cet article, nous verrons également comment rediriger http://monappli.mondomaine.fr/ vers http://monappli.mondomaine.fr/MonAppli automatiquement.
Pré-requis :
install httpd-devel apr apr-devel apr-util apr-util-devel gcc gcc-c++ make autoconf libtool
Installation de mod_jk :
mkdir -p /opt/mod_jk/ cd /opt/mod_jk wget http://www.eu.apache.org/dist/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.41-src.tar.gz tar -xvzf tomcat-connectors-1.2.41-src.tar.gz cd tomcat-connectors-1.2.41-src/native ./configure --with-apxs=/usr/sbin/apxs make libtool --finish /usr/lib64/httpd/modules make install
Configuration :
vim $TOMCAT_HOME/conf/server.xml
Vérifier le port :
<!-- Define an AJP 1.3 Connector on port 8009 --> <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
Créer le fichier de configuration du mod_jk :
vim /etc/httpd/conf.d/mod_jk.conf
et placer à l’intérieur :
LoadModule jk_module "/etc/httpd/modules/mod_jk.so" JkWorkersFile /etc/httpd/conf/workers.properties # Where to put jk shared memory JkShmFile /var/run/httpd/mod_jk.shm # Where to put jk logs JkLogFile /var/log/httpd/mod_jk.log # Set the jk log level [debug/error/info] JkLogLevel info # Select the timestamp log format JkLogStampFormat "[%a %b %d %H:%M:%S %Y] " #JkRequestLogFormat "%w %V %T" #JkEnvVar SSL_CLIENT_V_START worker1
Créer le répertoire pour la mémoire partagée :
mkdir -p /var/run/mod_jk chown apache:apache /var/run/mod_jk
Créer le fichier worker.properties. C’est le fichier qui permet la communication entre apache et Tomcat
vim /etc/httpd/conf/workers.properties
Et placer à l’intérieur :
workers.apache_log=/var/log/httpd worker.list=app1Worker worker.stat1.type=status worker.app1Worker.type=ajp13 worker.app1Worker.host=app1.myhost.com #put your app host here worker.app1Worker.port=8009
Création d’un virtualhost d’apache :
vim /etc/httpd/conf.d/app1.conf
Placez ceci dans le fichier en modifiant les valeurs en rouge ;
<VirtualHost *:80>
ServerName app1.myhost.com
ServerAdmin [email protected]
LogFormat « %h %l %u %t \ »%r\ » %>s %b \ »%{Referer}i\ » \ »%{User-agent}i\ » » combined
CustomLog /var/log/httpd/app1_access.log combined
ErrorLog /var/log/httpd/app1_error.log
<IfModule mod_jk.c>
JkMount /* app1Worker
</IfModule>
</VirtualHost>
app1Worker doit correspondre au nom défini dans la directive worker.list du fichier worker.properties
Redémarrez apache et testez.
Ajouter une redirection vers le répertoire applicatif :
Pour ne plus avoir à taper le nom de l’appli après le domaine, il faut faire de la réécriture d’Url.
Exemple :
Nous avons une application qui est accessible via http://monappli.mondomaine.fr/MonAppli. Nous voulons modifier l’url pour que lorsque l’on pointe sur http://monappli.mondomaine.fr/ , nous accédions automatiquement à http://monappli.mondomaine.fr/MonAppli/.
Pour cela, ouvrez votre fichier httpd.conf. Dans le VirtualHost correspondant à votre application, ajouté à la fin :
RewriteEngine On RewriteRule ^/$ /MonAppli [PT]
Et voilà une belle redirection n’est ce pas??
Ancienne doc : https://www.croc-informatique.fr/2009/03/redirection-apache-tomcat-avec-mod_jk-et-rewriterule/
Source : http://www.diegoacuna.me/installing-mod_jk-on-apache-httpd-in-centos-6-x7-x/