Jan
22
2018

Redirection apache tomcat avec Mod JK sur centos 7


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/

Articles similaires

Au sujet de l'auteur: Olivier Legras

Auteur de ce Blog, je partage quelques unes de mes notes que je juge utile à vous comme à moi. Je suis très heureux de voir que mon blog a de plus en plus d'affluence. Merci à vous!

Laissez un commentaire