Recherche de site Web

Apache avec Tomcat : un guide d'installation et de configuration étape par étape


Dans cet article, nous allons vous montrer comment installer et configurer Tomcat 10 sur Ubuntu et comment l'intégrer au serveur HTTP Apache à l'aide du connecteur mod_jk.

Apache Tomcat est un serveur Web open source et un conteneur de servlets utilisés pour déployer et servir des applications Web Java. La plupart des frameworks Web Java modernes sont basés sur des servlets, par exemple JavaServer Faces, Struts, Spring, etc.

Apache Tomcat fournit également par défaut un connecteur HTTP sur le port 8080, c'est-à-dire que Tomcat peut également être utilisé comme serveur HTTP. Mais les performances de Tomcat ne sont pas aussi bonnes que celles d'un serveur Web désigné, comme le serveur HTTP Apache.

Dans la plupart des productions, Tomcat est utilisé conjointement avec le serveur HTTP Apache. Le serveur HTTP Apache s'occupe du contenu statique tel que HTML, images, etc., et transmet les demandes de contenu dynamique à Tomcat.

Ce guide d'installation et de configuration s'applique à Apache avec Tomcat 10 sur Ubuntu.

1. Installez Java

Tout d’abord, comme toujours, mettez à jour vos packages :

sudo apt update

Java doit être installé sur votre système pour exécuter le serveur Tomcat. Tomcat 10 nécessite Java SE 8 ou une version supérieure installée sur votre système. Exécutez la commande suivante et installez le package JDK OpenJDK 11 :

sudo apt install openjdk-11-jdk

Vérifiez la version Java active actuelle :

java -version
openjdk version "11.0.11" 2021-04-20
OpenJDK Runtime Environment (build 11.0.11+9-Ubuntu-0ubuntu2.20.04)
OpenJDK 64-Bit Server VM (build 11.0.11+9-Ubuntu-0ubuntu2.20.04, mixed mode, sharing)

2. Créer un utilisateur du système Tomcat

L'exécution d'un serveur Tomcat sous l'utilisateur root constitue un risque pour la sécurité. Par conséquent, nous vous recommandons de créer un compte utilisateur distinct pour exécuter le serveur Tomcat.

La commande suivante créera un utilisateur et un groupe portant le nom tomcat sur votre système :

sudo useradd -m -d /opt/tomcat -U -s /bin/false tomcat

3. Installez et configurez Apache Tomcat 10

Tomcat est un outil indépendant de la plate-forme et, tant que Java est installé, l'installation est un processus simple. Tout d’abord, vous devez télécharger la version souhaitée sur le site officiel, puis la décompresser sur votre système de fichiers.

Téléchargez maintenant la dernière version binaire de Tomcat à partir de la page officielle de téléchargement de Tomcat.

wget https://apache.mirrors.nublue.co.uk/tomcat/tomcat-10/v10.0.8/bin/apache-tomcat-10.0.8.tar.gz

Une fois le téléchargement terminé, extrayez le fichier tar dans le répertoire /opt/tomcat :

sudo tar xzvf apache-tomcat-10*tar.gz -C /opt/tomcat --strip-components=1

Ensuite, définissez les autorisations de fichier appropriées :

sudo chown -R tomcat:tomcat /opt/tomcat/
sudo chmod -R u+x /opt/tomcat/bin

Vous devez créer un utilisateur pour le gestionnaire d'applications Web sur le serveur Tomcat. Un nouveau compte utilisateur doit être configuré pour utiliser Apache Tomcat Web Application Manager.

Pour ce faire, modifiez le fichier tomcat-users.xml dans votre éditeur :

sudo vim /opt/tomcat/conf/tomcat-users.xml

Collez le code suivant dans les balises . Assurez-vous de modifier le MOT DE PASSE pour l'accès administrateur et gestionnaire.

<!-- user manager can access only manager section -->
<role rolename="manager-gui" />
<user username="manager" password="PASSWORD" roles="manager-gui" />

<!-- user admin can access manager and admin section both -->
<role rolename="admin-gui" />
<user username="admin" password="PASSWORD" roles="manager-gui,admin-gui" />

Tomcat fournit une console d'administration basée sur le Web. Le serveur Tomcat par défaut n'autorise pas l'accès à distance aux applications Manager et Host Manager. Cependant, vous ne pouvez y accéder qu’à partir de localhost.

Pour activer les connexions à distance, suivez les instructions ci-dessous.

Créez un fichier conf/Catalina/localhost/manager.xml :

sudo vim /opt/tomcat/conf/Catalina/localhost/manager.xml

Ajoutez le contenu suivant :

<Context privileged="true" antiResourceLocking="false" docBase="{catalina.home}/webapps/manager">
    <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />
</Context>

Vous devez également créer un fichier XML pour l'application Web du gestionnaire d'hôtes afin d'autoriser l'accès aux hôtes distants.

sudo vim /opt/tomcat/conf/Catalina/localhost/host-manager.xml

Ajoutez le contenu suivant :

<Context privileged="true" antiResourceLocking="false" docBase="${catalina.home}/webapps/host-manager">
    <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />
</Context>

4. Créez un service Tomcat Systemd

Nous devons créer un script de démarrage pour gérer Tomcat en tant que service systemd. Créons un fichier tomcat.service.

sudo vim /etc/systemd/system/tomcat.service

Collez ce qui suit dans le fichier :

[Unit]
Description=Tomcat
After=network.target

[Service]
Type=forking
User=tomcat
Group=tomcat
Environment="JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom"
Environment="CATALINA_BASE=/opt/tomcat"
Environment="CATALINA_HOME=/opt/tomcat"
Environment="CATALINA_PID=/opt/tomcat/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"

ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh

[Install]
WantedBy=multi-user.target

Rechargez le démon systemd pour appliquer les modifications :

sudo systemctl daemon-reload

Configurez Tomcat pour qu'il démarre automatiquement au démarrage :

sudo systemctl enable tomcat

5. Installez le serveur HTTP Apache

Apache est disponible dans les référentiels de logiciels par défaut d'Ubuntu. Pour l'installer, tapez la commande suivante :

sudo apt install apache2

6. Configurez Tomcat pour fonctionner avec Apache

Pour intégrer les processus du serveur Apache Tomcat au serveur HTTP Apache, nous avons besoin du module mod_jk, qui implémente l'interface entre Tomcat et Apache, combiné à quelques petites étapes pour configurer Apache et Tomcat selon nos besoins.

6.1 Installer le module mod_jk

L'installation et la configuration de mod_jk sont la clé pour faire fonctionner ensemble le serveur Web et le serveur d'applications. Alors installons-le :

sudo apt install libapache2-mod-jk

6.2 Configuration de mod_jk avec Apache et Tomcat.

Vous devrez activer le connecteur AJP dans Tomcat afin que le serveur Apache puisse rediriger les requêtes vers Tomcat. Pour ce faire, vous avez modifié le fichier server.xml de Tomcat.

sudo vim /opt/tomcat/conf/server.xml

Assurez-vous que le connecteur AJP ci-dessous est actif et non commenté.

<Connector protocol="AJP/1.3" port="8009" secretRequired="false" redirectPort="8443" />

Nous devons configurer le serveur HTTP Apache pour charger et initialiser le module JK.

Nous devons créer le fichier /etc/apache2/workers.properties. Ce fichier définit une liste de « travailleurs » Tomcat auxquels Apache peut transmettre des requêtes.  

sudo vim /etc/apache2/workers.properties

et collez ce qui suit dans le fichier :

# Define 1 real worker using ajp13
worker.list=worker1
Set properties for worker1 (ajp13)
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009

Ensuite, référencez ce fichier dans le fichier de configuration principal d'Apache apache2.conf :

sudo vim /etc/apache2/apache2.conf

On ajoute ces lignes à la fin :

JkWorkersFile /etc/apache2/workers.properties
Where to put jk shared memory
JkShmFile /var/log/apache2/mod_jk.shm
Where to put jk logs
JkLogFile /var/log/apache2/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 ] "

6.3 Configurer les URL à gérer avec Apache

À ce stade, vous devrez configurer Apache pour lui indiquer les URL à traiter et à transférer à Tomcat et les URL que vous souhaitez qu'Apache lui-même traite.

sudo vim /etc/apache2/sites-enabled/000-default.conf

Ajoutez la ligne suivante sous l'entrée DocumentRoot. Cela permet de demander JRS via le serveur Web Apache.

JkMount /examples worker1
JkMount /examples/* worker1

7. Comment vérifier que cela fonctionne

Redémarrez les services Apache et Tomcat :

sudo systemctl restart apache2
sudo systemctl restart tomcat

Une fois que vous démarrez le serveur, ouvrez votre navigateur Internet et accédez à l'URL http://server_ip_address:8080. Si vous voyez une page similaire à celle présentée ci-dessous, Tomcat a été correctement installé.

Un moyen simple de vérifier que l'intégration entre le serveur HTTP Apache et Tomcat fonctionne consiste à demander l'un des exemples de fichiers que Tomcat doit servir.

Pointez votre navigateur vers http://server_ip_address/examples/ et exécutez certains des exemples d'applications.

Félicitations! Vous avez intégré avec succès Tomcat au serveur HTTP Apache.

Conclusion

Si vous souhaitez exécuter des applications Java qui fonctionnent de manière transparente et rapide, Apache Tomcat est le meilleur choix.

Ce didacticiel vous a appris comment installer et configurer le serveur d'applications Tomcat avec le serveur Web Apache. J'espère que vous disposez désormais de suffisamment d'informations pour déployer votre application Java sur le serveur Tomcat.

J'espère que vous avez également trouvé le guide utile. Pour plus d'informations, consultez la documentation officielle de Tomcat sur Tomcat Doc.

Merci d'avoir lu! Vos retours et commentaires sont les bienvenus.

Articles connexes: