Dans cet article, nous allons vous montrer comment installer et configurer Tomcat 10 sur Ubuntu et comment nous pouvons l'intégrer à Apache HTTP Server à 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 Apache HTTP Server. Le serveur HTTP Apache traite le contenu statique comme le code HTML, les 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. Installer 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 système Tomcat
Exécution d'un serveur Tomcat sous la racine l'utilisateur est 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 avec le nom tomcat
sur votre système :
sudo useradd -m -d /opt/tomcat -U -s /bin/false tomcat
3. Installer et configurer 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 des téléchargements 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 /opt/tomcat
répertoire :
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 dans le serveur Tomcat. Un nouveau compte utilisateur doit être configuré pour utiliser le gestionnaire d'applications Web Apache Tomcat.
Pour ce faire, modifiez le tomcat-users.xml
fichier dans votre éditeur :
sudo vim /opt/tomcat/conf/tomcat-users.xml
Collez le code suivant dans <tomcat-users>
</tomcat-users>
Mots clés. Assurez-vous de changer PASSWORD
pour un 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 pour les 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ôte 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éer 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 tomcat.service
fichier.
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. Installer 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. Configurer Tomcat pour qu'il fonctionne 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ée à quelques petites étapes pour configurer Apache et Tomcat selon nos besoins.
6.1 Installer le module mod_jk
Installation et configuration de mod_jk est la clé pour que le serveur Web et le serveur d'application fonctionnent ensemble. 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 pour que le serveur Apache puisse rediriger les requêtes vers Tomcat. Vous l'avez fait en modifiant le server.xml
de Tomcat fichier.
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 /etc/apache2/workers.properties
dossier. 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
Nous ajoutons 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 à transmettre à Tomcat et les URL que vous souhaitez qu'Apache traite lui-même.
sudo vim /etc/apache2/sites-enabled/000-default.conf
Ajoutez la ligne suivante sous DocumentRoot
entrée. 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 avez démarré le serveur, ouvrez votre navigateur Internet et accédez à l'URL http://server_ip_address:8080
. Tomcat a été installé correctement si vous voyez une page similaire à celle de l'image ci-dessous.
Un moyen simple de vérifier que l'intégration entre Apache HTTP Server et Tomcat fonctionne consiste à demander l'un des fichiers d'exemple que Tomcat doit fournir.
Faites pointer votre navigateur vers http://server_ip_address/examples/
et exécutez quelques exemples d'applications.
Toutes nos félicitations! Vous avez intégré avec succès Tomcat à Apache HTTP Server.