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
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.
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
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.
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
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:
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.
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
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
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.
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.
Si tienes éxito, deberías ver el panel de control del gestor de Apache Tomcat.
A continuación se muestra el aspecto del gestor de host de 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
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
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:
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.
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.