Cuando desarrollas un aplicativo .war y lo deployas en un servidor tomcat, generalmente la ruta en donde se alojará la aplicación será localhost:8080/tuapp, lo que haremos es Desplegar una aplicación en el directorio raíz de tomcat localhost:8080/. Luego instalaremos el aplicativo nginx que nos ayudará a quitar los molestosos puertos 8080 y redireccionar al puerto por defecto 80, quedando nuestro aplicativo de la siguiente forma final localhost/.
Paso 1: Configuración de la Aplicación en la Ruta Raíz de Tomcat
Abre el archivo server.xml
de Tomcat ubicado en la carpeta de configuración, comúnmente en tomcat/conf/server.xml
. Busca la sección <Host>
y agrega la siguiente línea dentro de ella:
<Context path="" docBase="nombre_de_tu_aplicacion" reloadable="true"/>
Asegúrate de reemplazar nombre_de_tu_aplicacion
con la ruta absoluta de tu aplicación dentro del sistema de archivos. Reinicia Tomcat para que los cambios surtan efecto
Si lo tienes como servicio utiliza este comando
sudo systemctl restart tomcat
sino ejecuta lo siguiente:
sudo sh /tomcat/bin/shutdown.sh
sudo sh /tomcat/bin/startup.sh
Paso 2: Configuración del Reverse Proxy con NGINX:
Lo primero que tenemos que hacer es instalar ngnx con el siguiente comando:
sudo apt install nginx
Si usas algún otro sistema operativo te dejo el link de descargas de la página. https://nginx.org/en/download.html
Una vez instalado nos vamos a la ruta siguiente y si hay algún archivo default, lo podemos respaldar o eliminar:
cd /etc/nginx/sites-available
respaldamos el archivo default
sudo mv default default_resp
borramos el link simbólico de la carpeta sites-enabled
cd ..
cd sites-enabled
sudo rm default
creamos un nuevo archivo
sudo nano tomcat.conf
Agregamos el siguiente código reemplazando las lineas que he marcado:
server {
listen 80;
server_name example.com;
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/;
}
}
Agregamos el enlace simbólico a la carpeta sites-enables
sudo ln -s /etc/nginx/sites-available/tomcat.conf /etc/nginx/sites-enabled/
Ahora nos toca reiniciar el nginx
sudo systemctl restart nginx
¡Listo! Ahora ya tienes a tu aplicación en el directorio raíz de tomcat y NGINX está configurado como un proxy inverso para mejorar el rendimiento y la seguridad. Además de redirigir desde el puerto 80 hasta el 8080 y viceversa.