Apache Tomcat est une implémentation open source des technologies Java Servlet, JavaServer Pages, Java Expression Language et Java WebSocket. C'est l'un des serveurs d'applications et Web les plus largement adoptés dans le monde aujourd'hui. Tomcat est simple à utiliser et dispose d'un solide écosystème de modules complémentaires.
Ce tutoriel explique comment installer Tomcat 9.0 sur CentOS 8.
Installation de Java #
Tomcat 9 nécessite Java SE 8 ou version ultérieure. Nous allons installer OpenJDK 11, l'implémentation open source de la plate-forme Java.
Exécutez la commande suivante en tant qu'utilisateur root ou utilisateur avec les privilèges sudo pour installer Java :
sudo dnf install java-11-openjdk-devel
Une fois l'installation terminée, vérifiez-la en vérifiant la version de Java :
java -version
Le résultat devrait ressembler à ceci :
openjdk version "11.0.5" 2019-10-15 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.5+10-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.5+10-LTS, mixed mode, sharing)
Création d'un numéro d'utilisateur système
L'exécution de Tomcat sous l'utilisateur root présente un risque de sécurité. Nous allons créer un nouvel utilisateur système et un groupe avec le répertoire personnel /opt/tomcat
qui exécutera le service Tomcat. Pour cela, saisissez la commande suivante :
sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat
Téléchargement de Tomcat #
La distribution binaire de Tomcat est disponible au téléchargement à partir de la page de téléchargement de Tomcat.
Au moment de la rédaction, la dernière version de Tomcat est 9.0.30
. Avant de passer à l'étape suivante, consultez la page de téléchargement de Tomcat 9 pour voir si une version plus récente est disponible.
Téléchargez le fichier zip Tomcat avec wget
au /tmp
répertoire :
VERSION=9.0.30
wget https://www-eu.apache.org/dist/tomcat/tomcat-9/v${VERSION}/bin/apache-tomcat-${VERSION}.tar.gz -P /tmp
Une fois le téléchargement terminé, extrayez le fichier tar dans le /opt/tomcat
répertoire ::
sudo tar -xf /tmp/apache-tomcat-${VERSION}.tar.gz -C /opt/tomcat/
Tomcat est mis à jour régulièrement. Pour avoir plus de contrôle sur les versions et les mises à jour, nous allons créer un lien symbolique appelé latest
, qui pointe vers le répertoire d'installation de Tomcat :
sudo ln -s /opt/tomcat/apache-tomcat-${VERSION} /opt/tomcat/latest
L'utilisateur système précédemment créé doit avoir accès au répertoire d'installation de tomcat. Modifiez la propriété du répertoire en utilisateur et groupe tomcat :
sudo chown -R tomcat: /opt/tomcat
Créez les scripts shell dans le bin
répertoire exécutable :
sudo sh -c 'chmod +x /opt/tomcat/latest/bin/*.sh'
Ces scripts sont utilisés pour démarrer et arrêter Tomcat.
Création d'un fichier d'unité Systemd #
Au lieu de démarrer et d'arrêter manuellement le serveur Tomcat, nous allons le configurer pour qu'il s'exécute en tant que service. Ouvrez votre éditeur de texte et créez un tomcat.service
fichier d'unité dans le /etc/systemd/system/
répertoire :
sudo nano /etc/systemd/system/tomcat.service
Collez le contenu suivant :
/etc/systemd/system/tomcat.service[Unit]
Description=Tomcat 9 servlet container
After=network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
Environment="JAVA_HOME=/usr/lib/jvm/jre"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom"
Environment="CATALINA_BASE=/opt/tomcat/latest"
Environment="CATALINA_HOME=/opt/tomcat/latest"
Environment="CATALINA_PID=/opt/tomcat/latest/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"
ExecStart=/opt/tomcat/latest/bin/startup.sh
ExecStop=/opt/tomcat/latest/bin/shutdown.sh
[Install]
WantedBy=multi-user.target
Enregistrez et fermez le fichier.
Avertissez systemd qu'un nouveau fichier de service existe, en tapant :
sudo systemctl daemon-reload
Activez et démarrez le service Tomcat :
sudo systemctl enable --now tomcat
Vérifiez l'état du service :
sudo systemctl status tomcat
Le résultat doit indiquer que le serveur Tomcat est activé et en cours d'exécution :
● tomcat.service - Tomcat 9 servlet container
Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2020-01-15 20:38:07 UTC; 30s ago
Process: 3957 ExecStart=/opt/tomcat/latest/bin/startup.sh (code=exited, status=0/SUCCESS)
...
Configuration du pare-feu #
Si votre serveur est protégé par un pare-feu et que vous souhaitez accéder à l'interface tomcat depuis l'extérieur du réseau local, vous devez ouvrir le port 8080
.
Utilisez les commandes suivantes pour ouvrir le port nécessaire :
Généralement, lors de l'exécution de Tomcat dans un environnement de production, vous devez utiliser un équilibreur de charge ou un proxy inverse. Il est recommandé d'autoriser l'accès au portsudo firewall-cmd --permanent --zone=public --add-port=8080/tcp
sudo firewall-cmd --reload
8080
uniquement depuis votre réseau interne. Configuration de l'interface de gestion Web Tomcat #
À ce stade, vous devriez pouvoir accéder à Tomcat avec un navigateur Web sur le port 8080
. L'interface de gestion Web n'est pas accessible car nous n'avons pas encore créé d'utilisateur.
Les utilisateurs et les rôles Tomcat sont définis dans le tomcat-users.xml
fichier.
Si vous ouvrez le fichier, vous remarquerez qu'il est rempli de commentaires et d'exemples décrivant comment configurer le fichier.
sudo nano /opt/tomcat/latest/conf/tomcat-users.xml
Pour créer un nouvel utilisateur pouvant accéder à l'interface Web de Tomcat (manager-gui et admin-gui), modifiez le fichier comme indiqué ci-dessous. Assurez-vous de changer le nom d'utilisateur et le mot de passe pour quelque chose de plus sûr :
/opt/tomcat/latest/conf/tomcat-users.xml<tomcat-users>
<!--
Comments
-->
<role rolename="admin-gui"/>
<role rolename="manager-gui"/>
<user username="admin" password="admin_password" roles="admin-gui,manager-gui"/>
</tomcat-users>
Par défaut, l'interface de gestion Web de Tomcat est configurée pour n'autoriser l'accès qu'à partir de l'hôte local.
Si vous avez besoin d'accéder à l'interface Web de n'importe où, ouvrez les fichiers suivants et commentez ou supprimez les lignes surlignées en jaune :
/opt/tomcat/latest/webapps/manager/META-INF/context.xml<Context antiResourceLocking="false" privileged="true" >
<!--
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
-->
</Context>
/opt/tomcat/latest/webapps/host-manager/META-INF/context.xml<Context antiResourceLocking="false" privileged="true" >
<!--
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
-->
</Context>
Veuillez noter qu'il n'est pas recommandé d'autoriser l'accès depuis n'importe où, car il s'agit d'un risque pour la sécurité.
Si vous souhaitez accéder à l'interface Web uniquement à partir d'une adresse IP spécifique, au lieu de commenter les blocs, ajoutez votre adresse IP publique à la liste.
Disons que votre IP publique est 41.41.41.41
et vous souhaitez autoriser l'accès uniquement à partir de cette adresse IP :
<Context antiResourceLocking="false" privileged="true" >
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|41.41.41.41" />
</Context>
/opt/tomcat/latest/webapps/host-manager/META-INF/context.xml<Context antiResourceLocking="false" privileged="true" >
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|41.41.41.41" />
</Context>
La liste des adresses IP autorisées est une liste séparée par une barre verticale |
. Vous pouvez ajouter des adresses IP uniques ou utiliser des expressions régulières.
Une fois cela fait, redémarrez le service Tomcat pour que les modifications prennent effet :
sudo systemctl restart tomcat
Numéro d'installation de test
Ouvrez votre navigateur et tapez :http://<your_domain_or_IP_address>:8080
Une fois l'installation réussie, un écran semblable à celui-ci devrait apparaître :
Le tableau de bord du gestionnaire d'applications Web Tomcat vous permet de déployer, d'annuler le déploiement, de démarrer, d'arrêter et de recharger vos applications. Il est disponible à :http://<your_domain_or_IP_address>:8080/manager/html
.
Le tableau de bord du gestionnaire d'hôtes virtuels Tomcat vous permet de créer, de supprimer et de gérer des hôtes virtuels Tomcat. Il est disponible à :http://<your_domain_or_IP_address>:8080/host-manager/html
.