GNU/Linux >> Tutoriales Linux >  >> Debian

Cómo instalar Apache Tomcat 9 con Nginx Proxy en Debian 10

Tomcat es un servidor de aplicaciones gratuito, de código abierto y ligero que se utiliza para implementar aplicaciones basadas en Java. Puede usarse como un servidor independiente o combinado con otros servidores como Apache y Nginx. Proporciona la funcionalidad extendida para interactuar con Java Servlets y también implementa varias especificaciones técnicas de la plataforma Java. Actualmente, Tomcat es uno de los servidores de aplicaciones para Java más utilizados.

En este tutorial, le mostraré cómo instalar Tomcat 9 con Nginx en Debian 10.

Requisitos

  • Un servidor que ejecuta Debian 10.
  • Un nombre de dominio válido apuntado con la IP de su servidor.
  • Se ha configurado una contraseña raíz en su servidor.

Cómo empezar

Antes de comenzar, es una buena idea actualizar su caché APT a la última versión. Puede actualizarlo ejecutando el siguiente comando:

apt-get update -y

Una vez que la caché de paquetes de su sistema esté actualizada, puede continuar con el siguiente paso.

Instalar Java

Tomcat es una aplicación basada en Java, por lo que Java debe estar instalado en su servidor. Si no está instalado, puede instalarlo con el siguiente comando:

apt-get install default-jdk -y

Una vez que Java esté instalado, puede verificar la versión de Java con el siguiente comando:

java --version

Deberías obtener el siguiente resultado:

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)

Una vez que haya terminado, puede continuar con el siguiente paso.

Instalar Tomcat

Primero, deberá crear un usuario dedicado para ejecutar el servidor Tomcat. Puedes crearlo con el siguiente comando:

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

A continuación, descargue la última versión de Tomcat usando el siguiente comando:

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

Una vez que se complete la descarga, extraiga el archivo descargado con el siguiente comando:

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

A continuación, mueva el directorio extraído a /opt con el siguiente comando:

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

A continuación, establezca el permiso y la propiedad adecuados con el siguiente comando:

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

Una vez que haya terminado, puede continuar con el siguiente paso.

Crear un archivo de servicio de Systemd para Tomcat

A continuación, deberá crear un archivo de servicio systemd para administrar el servicio Tomcat. Puedes crearlo con el siguiente comando:

nano /etc/systemd/system/tomcat.service

Agregue las siguientes líneas:

[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

Guarde y cierre el archivo, luego vuelva a cargar el demonio systemd con el siguiente comando:

systemctl daemon-reload

A continuación, inicie el servicio Tomcat y habilítelo para que se inicie al reiniciar el sistema con el siguiente comando:

systemctl start tomcat
systemctl enable tomcat

También puede verificar el estado de Tomcat con el siguiente comando:

systemctl status tomcat

Deberías obtener el siguiente resultado:

? 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.

Una vez que haya terminado, puede continuar con el siguiente paso.

Configurar la interfaz web de Tomcat

A continuación, deberá definir un usuario para acceder a la interfaz web de Tomcat. Puede definirlo utilizando el archivo tomcat-users.xml:

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

Busque la sección y agregue o modifique las siguientes líneas:

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

Guarde y cierre el archivo cuando haya terminado.

De forma predeterminada, la interfaz web de Tomcat está configurada para acceder solo desde el host local. Por lo tanto, deberá configurarlo para el acceso externo.

Para la aplicación Manager, edite la siguiente línea:

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

Para la aplicación Host Manager, edite el siguiente archivo:

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

Elimina la siguiente línea:

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

Guarde y cierre el archivo, luego reinicie el servicio Tomcat para aplicar los cambios:

systemctl restart tomcat

Una vez que haya terminado, puede continuar con el siguiente paso.

Configurar Nginx para Tomcat

A continuación, deberá instalar y configurar Nginx como un proxy inverso para Tomcat. Primero, instale el paquete Nginx con el siguiente comando:

apt-get install nginx -y

Una vez que se haya instalado Nginx, deberá crear un nuevo archivo de configuración de host virtual de Nginx para Tomcat. Puedes crearlo usando el siguiente comando:

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

Agregue las siguientes líneas:

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/;
  }
}

Guarde y cierre el archivo, luego verifique el Nginx para cualquier error de sintaxis:

nginx -t

Debería ver el siguiente resultado:

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

A continuación, reinicie el servicio Nginx para aplicar los cambios:

systemctl restart nginx

A continuación, verifique el estado del servicio Nginx con el siguiente comando:

systemctl status nginx

Debería ver el siguiente resultado:

? 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.

En este punto, Nginx está configurado para acceder a Tomcat. Ahora puede continuar con el siguiente paso.

Acceder a la interfaz de usuario web de Tomcat

Ahora, abra su navegador web y acceda a la interfaz de usuario web de Tomcat mediante la URL http://tomcat.example.com . Debería ver la siguiente página:

Haga clic en el Administrador Aplicación , debería ver la siguiente página:

Proporcione su nombre de usuario y contraseña de administrador de la aplicación Manager y haga clic en Iniciar sesión botón. Debería ver la siguiente página:

También puede hacer clic en el Administrador de host para acceder a la aplicación Host Manager como se muestra a continuación:

Conclusión

¡Felicidades! ha instalado con éxito Tomcat con Nginx como proxy inverso en Debian 10. Ahora puede implementar su aplicación Java fácilmente con Tomcat. Siéntase libre de preguntarme si tiene alguna pregunta.


Debian
  1. Cómo instalar Apache ZooKeeper en Debian 10

  2. Cómo instalar Apache Cassandra en Debian 11

  3. Cómo instalar Yii Framework en un VPS Debian con Nginx

  4. Cómo instalar Odoo 11 en Debian 9 con Nginx como proxy inverso

  5. Cómo instalar Odoo 12 en Debian 10 con Nginx como proxy inverso

Cómo instalar Symfony 5 Framework con Nginx en Debian 10

Cómo instalar Apache Tomcat en Debian 11

Cómo instalar phpMyAdmin con Nginx en Debian 11

Cómo instalar Apache Tomcat 10 en Ubuntu 20.04 con Nginx

Cómo instalar Apache Tomcat 10 en Ubuntu 22.04 con Nginx

Cómo instalar Apache Tomcat en Debian 10