GNU/Linux >> Tutoriels Linux >  >> Debian

Comment installer Apache Tomcat 9 avec Nginx Proxy sur Debian 10

Tomcat est un serveur d'applications gratuit, open source et léger utilisé pour déployer des applications basées sur Java. Il peut être utilisé comme serveur autonome ou combiné avec d'autres serveurs comme Apache et Nginx. Il fournit les fonctionnalités étendues pour interagir avec les servlets Java et implémente également plusieurs spécifications techniques de la plate-forme Java. Actuellement, Tomcat est l'un des serveurs d'applications les plus utilisés pour Java.

Dans ce tutoriel, je vais vous montrer comment installer Tomcat 9 avec Nginx sur Debian 10.

Prérequis

  • Un serveur exécutant Debian 10.
  • Un nom de domaine valide pointé vers l'adresse IP de votre serveur.
  • Un mot de passe root est configuré sur votre serveur.

Mise en route

Avant de commencer, c'est une bonne idée de mettre à jour votre cache APT vers la dernière version. Vous pouvez le mettre à jour en exécutant la commande suivante :

apt-get update -y

Une fois que votre cache de packages système est à jour, vous pouvez passer à l'étape suivante.

Installer Java

Tomcat est une application basée sur Java, Java doit donc être installé sur votre serveur. S'il n'est pas installé, vous pouvez l'installer avec la commande suivante :

apt-get install default-jdk -y

Une fois Java installé, vous pouvez vérifier la version de Java avec la commande suivante :

java --version

Vous devriez obtenir le résultat suivant :

openjdk 11.0.9.1 2020-11-04
OpenJDK Runtime Environment (build 11.0.9.1+1-post-Debian-1deb10u2)
OpenJDK 64-Bit Server VM (build 11.0.9.1+1-post-Debian-1deb10u2, mixed mode, sharing)

Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.

Installer Tomcat

Tout d'abord, vous devrez créer un utilisateur dédié pour exécuter le serveur Tomcat. Vous pouvez le créer avec la commande suivante :

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

Ensuite, téléchargez la dernière version de Tomcat à l'aide de la commande suivante :

wget https://www-eu.apache.org/dist/tomcat/tomcat-9/v9.0.45/bin/apache-tomcat-9.0.45.tar.gz

Une fois le téléchargement terminé, extrayez le fichier téléchargé avec la commande suivante :

tar -xvzf apache-tomcat-9.0.45.tar.gz

Ensuite, déplacez le répertoire extrait vers le /opt avec la commande suivante :

mv apache-tomcat-9.0.45 /opt/tomcat/tomcat

Ensuite, définissez l'autorisation et la propriété appropriées avec la commande suivante :

chown -R tomcat:tomcat /opt/tomcat/tomcat
chmod -R 755 /opt/tomcat/tomcat

Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.

Créer un fichier de service Systemd pour Tomcat

Ensuite, vous devrez créer un fichier de service systemd pour gérer le service Tomcat. Vous pouvez le créer avec la commande suivante :

nano /etc/systemd/system/tomcat.service

Ajoutez les lignes suivantes :

[Unit]
Description=Tomcat 9.0 servlet container
After=network.target

[Service]
Type=forking

User=tomcat
Group=tomcat

Environment="JAVA_HOME=/usr/lib/jvm/default-java"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom"

Environment="CATALINA_BASE=/opt/tomcat/tomcat"
Environment="CATALINA_HOME=/opt/tomcat/tomcat"
Environment="CATALINA_PID=/opt/tomcat/tomcat/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"

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

[Install]
WantedBy=multi-user.target

Enregistrez et fermez le fichier puis rechargez le démon systemd avec la commande suivante :

systemctl daemon-reload

Ensuite, démarrez le service Tomcat et activez-le au redémarrage du système avec la commande suivante :

systemctl start tomcat
systemctl enable tomcat

Vous pouvez également vérifier l'état de Tomcat avec la commande suivante :

systemctl status tomcat

Vous devriez obtenir le résultat suivant :

? tomcat.service - Tomcat 9.0 servlet container
   Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; vendor preset: enabled)
   Active: active (running) since Wed 2021-04-14 05:41:21 UTC; 42s ago
  Process: 5784 ExecStart=/opt/tomcat/tomcat/bin/startup.sh (code=exited, status=0/SUCCESS)
 Main PID: 5791 (java)
    Tasks: 30 (limit: 4701)
   Memory: 159.1M
   CGroup: /system.slice/tomcat.service
           ??5791 /usr/lib/jvm/default-java/bin/java -Djava.util.logging.config.file=/opt/tomcat/tomcat/conf/logging.properties -Djava.util.log

Apr 14 05:41:21 debian systemd[1]: Starting Tomcat 9.0 servlet container...
Apr 14 05:41:21 debian startup.sh[5784]: Tomcat started.
Apr 14 05:41:21 debian systemd[1]: Started Tomcat 9.0 servlet container.

Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.

Configurer l'interface Web de Tomcat

Ensuite, vous devrez définir un utilisateur pour accéder à l'interface Web de Tomcat. Vous pouvez le définir à l'aide du fichier tomcat-users.xml :

nano /opt/tomcat/tomcat/conf/tomcat-users.xml

Recherchez la section et ajoutez ou modifiez les lignes suivantes :

  <role rolename="admin-gui"/>
  <role rolename="manager-gui"/>
  <user username="tomcatadmin" password="password" roles="admin-gui,manager-gui"/>

Enregistrez et fermez le fichier lorsque vous avez terminé.

Par défaut, l'interface Web de Tomcat est configurée pour accéder uniquement à partir de l'hôte local. Vous devrez donc le configurer pour un accès externe.

Pour l'application Manager, modifiez la ligne suivante :

nano /opt/tomcat/tomcat/webapps/manager/META-INF/context.xml

Pour l'application Host Manager, modifiez le fichier suivant :

nano /opt/tomcat/tomcat/webapps/host-manager/META-INF/context.xml

Supprimez la ligne suivante :

  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />

Enregistrez et fermez le fichier puis redémarrez le service Tomcat pour appliquer les modifications :

systemctl restart tomcat

Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.

Configurer Nginx pour Tomcat

Ensuite, vous devrez installer et configurer Nginx en tant que proxy inverse pour Tomcat. Tout d'abord, installez le package Nginx avec la commande suivante :

apt-get install nginx -y

Une fois Nginx installé, vous devrez créer un nouveau fichier de configuration d'hôte virtuel Nginx pour Tomcat. Vous pouvez le créer à l'aide de la commande suivante :

nano /etc/nginx/conf.d/tomcat.conf

Ajoutez les lignes suivantes :

server {
  listen          80;
  server_name     tomcat.example.com;
  root            /opt/tomcat/tomcat/webapps/;


  location / {
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://127.0.0.1:8080/;
  }
}

Enregistrez et fermez le fichier puis vérifiez le Nginx pour toute erreur de syntaxe :

nginx -t

Vous devriez voir le résultat suivant :

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Ensuite, redémarrez le service Nginx pour appliquer les modifications :

systemctl restart nginx

Ensuite, vérifiez l'état du service Nginx avec la commande suivante :

systemctl status nginx

Vous devriez voir le résultat suivant :

? nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2021-04-14 05:57:03 UTC; 1min 38s ago
     Docs: man:nginx(8)
  Process: 6852 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
  Process: 6853 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
 Main PID: 6854 (nginx)
    Tasks: 3 (limit: 4701)
   Memory: 4.0M
   CGroup: /system.slice/nginx.service
           ??6854 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
           ??6855 nginx: worker process
           ??6856 nginx: worker process

Apr 14 05:57:03 debian systemd[1]: Starting A high performance web server and a reverse proxy server...
Apr 14 05:57:03 debian systemd[1]: Started A high performance web server and a reverse proxy server.

À ce stade, Nginx est configuré pour accéder à Tomcat. Vous pouvez maintenant passer à l'étape suivante.

Accéder à l'interface utilisateur Web de Tomcat

Maintenant, ouvrez votre navigateur Web et accédez à l'interface utilisateur Web de Tomcat à l'aide de l'URL http://tomcat.example.com . Vous devriez voir la page suivante :

Cliquez sur le Gestionnaire Application , vous devriez voir la page suivante :

Fournissez votre nom d'utilisateur et votre mot de passe d'administrateur de l'application Manager et cliquez sur Connexion bouton. Vous devriez voir la page suivante :

Vous pouvez également cliquer sur le Gestionnaire d'hôte pour accéder à l'application Host Manager comme indiqué ci-dessous :

Conclusion

Toutes nos félicitations! vous avez installé avec succès Tomcat avec Nginx en tant que proxy inverse sur Debian 10. Vous pouvez maintenant déployer votre application Java facilement avec Tomcat. N'hésitez pas à me demander si vous avez des questions.


Debian
  1. Comment installer Apache ZooKeeper sur Debian 10

  2. Comment installer Apache Cassandra sur Debian 11

  3. Comment installer Yii Framework sur un VPS Debian avec Nginx

  4. Comment installer Odoo 11 sur Debian 9 avec Nginx comme proxy inverse

  5. Comment installer Odoo 12 sur Debian 10 avec Nginx comme proxy inverse

Comment installer Symfony 5 Framework avec Nginx sur Debian 10

Comment installer Apache Tomcat sur Debian 11

Comment installer phpMyAdmin avec Nginx sur Debian 11

Comment installer Apache Tomcat 10 sur Ubuntu 20.04 avec Nginx

Comment installer Apache Tomcat 10 sur Ubuntu 22.04 avec Nginx

Comment installer Apache Tomcat sur Debian 10