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

Apache Tomcat o «Tomcat» es un contenedor de Servlets Java gratuito y de código abierto para código y aplicaciones Java. Proporciona un entorno de servidor HTTP «Java puro» donde puede ejecutarse código Java. Tomcat también implementa las tecnologías JavaServer Pages, Java Expression Language y WebSocket.

En esta guía, te mostraremos cómo instalar Apache Tomcat 10 en el servidor Debian 12. También aprenderás a configurar Nginx como proxy inverso para Apache Tomcat.

Requisitos previos

Para empezar, asegúrate de que tienes lo siguiente:

  • Un servidor Debian 12.
  • Un usuario no root con privilegios de administrador.

Instalación del OpenJDK de Java

Apache Tomcat está escrito principalmente en Java, por lo que antes de instalarlo, debes instalar Java en tu sistema. En este ejemplo, instalarás Java OpenJDK 17, que está disponible por defecto en el repositorio de Debian.

Antes de empezar a instalar Java, actualiza y refresca tu repositorio Debian con el comando que se indica a continuación.

sudo apt update

actualizar repo

Ahora instala el paquete Java OpenJDK en tu servidor Debian utilizando el siguiente comando. El paquete default-jdk se refiere a Java OpenJDK 17, que es la versión LTS de Java.

sudo apt install default-jdk

Escribe y para confirmar la instalación.

instalar java

Después de instalar Java, ejecuta el siguiente comando para verificar tu versión de Java. verás que Java OpenJDK 17 está instalado.

java --version

comprobar java

Instalar Apache Tomcat a través del repositorio

Por defecto, el último repositorio de Debian 12 proporciona Apache Tomcat 10. Si necesitas instalar Apache Tomcat a través de APT, este método es adecuado para ti.

En primer lugar, comprueba el paquete tomcat10 utilizando el siguiente comando.

sudo apt info tomcat10

En la siguiente salida, puedes ver que Apache Tomcat 10 está disponible en el repositorio principal de Debian, en la sección de java.

comprobar tomcat10

Si quieres instalar Tomcat mediante APT, ejecuta el siguiente comando en tu sistema. Escribe y para confirmar la instalación.

sudo apt install tomcat10 tomcat10-common tomcat10-admin tomcat10-user tomcat10-examples

instalar tomcat10

Una vez completada la instalación, el servicio tomcat10 debería estar ejecutándose. Verifícalo con el comando que aparece a continuación.

sudo systemctl is-enabled tomcat10
sudo systemctl status tomcat10

Si el servicio tomcat10 se está ejecutando, deberías obtener la siguiente salida:

estado de tomcat

Por último, abre tu navegador web y visita la dirección IP del servidor con el puerto Tomcat por defecto 8080 http://192.168.5.15:8080/. Si la instalación se ha realizado correctamente, deberías obtener la página de índice por defecto de Apache Tomcat 10.

índice tomcat

Instalar Tomcat vía Binario

Ahora, si quieres instalar el último paquete de Apache Tomcat, puedes instalarlo mediante paquete binario. En esta sección, aprenderás cómo hacerlo en tu servidor Debian.

En primer lugar, crea un nuevo usuario de sistema tomcat con el siguiente comando.

sudo useradd -m -u -d /opt/tomcat -s /usr/sbin/nologin tomcat

Visita la página de descargas de Apache Tomcat y comprueba la última versión de Tomcat. A continuación, ejecuta el siguiente comando para descargar la última versión de Apache Tomcat.

export VERSION=10.1.19
wget https://www-eu.apache.org/dist/tomcat/tomcat-10/v${VERSION}/bin/apache-tomcat-${VERSION}.tar.gz

Una vez descargada, ejecuta el siguiente comando para crear un nuevo directorio de instalación de Apache Tomcat /opt/tomcat y extrae en él el paquete binario de Tomcat.

mkdir -p /opt/tomcat
sudo tar -xf apache-tomcat-${VERSION}.tar.gz -C /opt/tomcat

Ahora crea un nuevo enlace simbólico del directorio Tomcat extraído a /opt/tomcat/latest. A continuación, cambia la propiedad del directorio /opt/tomcat al usuario tomcat.

sudo ln -s /opt/tomcat/apache-tomcat-${VERSION} /opt/tomcat/latest
sudo chown -R tomcat:tomcat /opt/tomcat

A continuación, crea un nuevo archivo de servicio systemd /etc/systemd/system/tomcat. service utilizando el editor nano.

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

Pega la configuración que aparece a continuación para configurar el archivo de servicio para Apache Tomcat.

[Unit]
Description=Tomcat 10 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 -Djava.awt.headless=true"

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

Guarda el archivo y sal del editor.

Ejecuta el siguiente comando para recargar el gestor systemd y, a continuación, inicia y habilita el servicio tomcat.

sudo systemctl daemon-reload
sudo systemctl start tomcat
sudo systemctl enable tomcat

configurar tomcat

Una vez iniciado, verifica el servicio tomcat utilizando el comando siguiente. Asegúrate de que el servicio Tomcat se ejecuta como se indica a continuación.

sudo systemctl status tomcat

verificar tomcat

Por último, abre tu navegador web y visita http://192.168.5.15:8080/. Si todo va bien, deberías ver la página de índice de Apache Tomcat.

índice tomcat

Crear el administrador de Tomcat

Llegados a este punto, ya has instalado Apache Tomcat en tu servidor Debian. En el siguiente paso, configurarás la autenticación para Apache Tomcat y habilitarás el administrador de Tomcat y el host-manager.

Para empezar, edita el archivo de configuración de Tomcat /etc/tomcat10/tomcat-users.x ml utilizando el siguiente editor nano.

sudo nano /etc/tomcat10/tomcat-users.xml

Inserta las siguientes líneas entre la sección‘tomcat-users‘. Asegúrate de cambiar el nombre de usuario por defecto admin y la contraseña tomcatadmin con tus credenciales.

<tomcat-users>
<!--
user: admin pass: tomcatadmin
-->
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<user username="admin" password="tomcatadmin" roles="manager-gui, manager-script, manager-jmx, manager-status, admin-gui, admin-script"/>

</tomcat-users>

Guarda y sal del archivo.

Ahora, abre el archivo de configuración para el gestor de Tomcat y el host-manager utilizando el editor nano.

sudo nano /usr/share/tomcat10-admin/host-manager/META-INF/context.xml
sudo nano /usr/share/tomcat10-admin/manager/META-INF/context.xml

Comenta la línea ‘<Valve className=»org.apache.catalina.valves.RemoteAddrValve»‘ para permitir el acceso al gestor Tomcat y al host-manager. Añadiendo ‘<!– .. –>‘, la configuración quedará deshabilitada o comentada.

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

Guarda el archivo y sal del editor.

A continuación, reinicia el servicio Tomcat con el siguiente comando para aplicar la nueva configuración de Tomcat.

sudo systemctl restart tomcat

Por último, visita http://192.168.5.15:8080/manager para acceder al gestor de Tomcat, y http://192.168.5.15:8080/host-manager para acceder al gestor de host de Tomcat. Introduce tu usuario y contraseña de administrador cuando se te solicite y haz clic en Iniciar sesión.

inicio de sesión tomcat

Si tienes éxito, deberías ver el panel de control del gestor de Apache Tomcat.

gestor tomcat

A continuación se muestra el aspecto del gestor de host de Tomcat:

gestor de host tomcat

Configurar Nginx como Proxy Inverso

En esta guía, ejecutarás Apache Tomcat con Nginx como proxy inverso. En esta sección, instalarás nginx y establecerás una configuración de bloque de servidor como proxy inverso para Tomcat que se ejecuta en el puerto 8080.

Ejecuta el siguiente comando para instalar Nginx en tu sistema. Escribe y para confirmar la instalación.

sudo apt install nginx

instalar nginx

Una vez completada la instalación, crea una nueva configuración de bloque de servidor /etc/nginx/sites-available/tomcat. conf utilizando el editor nano.

sudo nano /etc/nginx/sites-available/tomcat.conf

Añade la configuración que aparece a continuación para configurar Nginx como proxy inverso para Apache Tomcat.

server {
listen 80;
server_name tomcat.hwdomain.io;
access_log /var/log/nginx/tomcat-access.log;
error_log /var/log/nginx/tomcat-error.log;

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

Guarda y sal del archivo cuando hayas terminado.

Ahora, activa la configuración del bloque del servidor y verifica la sintaxis de tu Nginx. Si todo va bien, deberías obtener una salida como‘la prueba se ha realizado correctamente – la sintaxis es correcta‘.

sudo ln -s /etc/nginx/sites-available/tomcat.conf /etc/nginx/sites-enabled/
sudo nginx -t

configuración de nginx

A continuación, reinicia el servicio Nginx para aplicar los nuevos cambios y verifícalo para asegurarte de que el servicio se está ejecutando.

sudo systemctl restart nginx
sudo systemctl status nginx

Si Nginx se está ejecutando, deberías obtener la siguiente salida:

verificar nginx

Por último, vuelve a tu navegador web y visita http://tomcat.hwdomain.io/. Deberías ver la página índice por defecto de Apache Tomcat.

tomcat nginx proxy inverso

Conclusión

¡Enhorabuena! Ya has instalado Apache Tomcat 10 en un servidor Debian 12. Has aprendido dos métodos para instalar Apache Tomcat, a través del repositorio APT y manualmente a través de un paquete binario. Al final, también has aprendido a configurar Nginx como proxy inverso para tu instalación de Tomcat.

También te podría gustar...