Un caso de uso de NGINX es como proxy inverso, redirigiendo las solicitudes de clientes a servidores backend y proteger los servicios. Permitiendo integrar varias aplicaciones en un mismo servidor. En los escenarios en los que existen varias aplicaciones en los servidores backend, puede surgir la necesidad de redirigir automáticamente a una aplicación predeterminada cuando el usuario accede a una ruta específica, como puede ser la raíz del dominio, sin afectar el acceso a las demás rutas. Simplificando de este modo la navegación de los usuarios. En esta entrada, se explicará cómo configurar NGINX para redirigir a una aplicación específica cuando los usuarios accedan a la raíz (/), manteniendo la funcionalidad de proxy inverso para el resto de las rutas.
Lo que se va a solucionar en esta entrada es un problema que surge cuando se tiene un servidor con varias aplicaciones bajo diferentes rutas, por ejemplo:
http://dominio.com/app1http://dominio.com/app2http://dominio.com/app3Estas aplicaciones pueden estar alojadas en un servidor backend y configuradas para pasar a través de un proxy inverso en NGINX. Lo que se desea conseguir es:
Ahora, la meta es:
/app1 cuando un usuario acceda a la raíz del sitio web (/)./app2, /app3, etc., funcione sin problemas.El desafío es evitar conflictos en la configuración de NGINX y dejar esta flexible para que el resto de las rutas no se vean afectadas. Incluso, si se instala una aplicación nueva en el backend esta se muestre sin problemas.
Para lograr este comportamiento en NGINX, es necesario una configuración que distinga entre el acceso a la raíz (/) y el resto de las rutas. Aquí está la solución paso a paso:
/): Lo que se consigue mediante un bloque location = / para redirigir únicamente el acceso a la raíz hacia /app1. El símbolo = hace que esta regla solo afecte a esta ruta.location / que capture cualquier otra ruta y pase las solicitudes al backend correspondiente.A continuación, se muestra una posible configuración completa que se puede utilizar como plantilla para implementar esta solución en un servidor NGINX:
server {
listen 80;
server_name tu_dominio.com;
# Redirigir exactamente la raíz '/' a '/app1'
location = / {
return 301 /app1;
}
# Proxy para todo lo demás (cualquier ruta que no sea exactamente '/')
location / {
proxy_pass http://10.0.0.15:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
} En donde:
/). El return 301 /app1 envía una redirección permanente (código 301) a la aplicación en /app1./). Actúa como proxy inverso, pasando las solicitudes al backend en http://10.0.0.15:8080. Aquí, NGINX envía las cabeceras adecuadas para mantener información del cliente, como la dirección IP original.Una vez actualizado el archivo de configuración, será necesario verificar la configuración y reiniciar el servidor:
sudo nginx -t
sudo systemctl reload nginx
En esta entrada se ha visto como configurar NGINX para redirigir a una aplicación específica. Pudiendo mantener el resto del servidor proxy sin cambios. Todo ello mediante el uso de bloques location = / y location /. Especialmente el comando el uso location = / que indica a NGINX que a la regla solamente se debe aplicar cuando la ruta sea exacta, manteniendo una configuración clara y sin conflictos para futuras extensiones o aplicaciones adicionales.
Nota: La imagen de este artículo fue generada utilizando un modelo de inteligencia artificial.
Seguimos ampliando el laboratorio de Analytics Lane con el lanzamiento de la versión 1.3, disponible…
Cerramos la serie internacional con la categoría más estrambótica de todas: indicadores que predicen el…
Si el WOE y el IV son la base matemática del credit scoring, el binning…
Seguimos iterando sobre el laboratorio de Analytics Lane y lanzamos la versión 1.2, disponible en:https://www.analyticslane.com/lab/es…
En la primera entrega vimos cómo se puede medir la economía mirando lo que la…
Tienes los datos de tráfico web de los últimos cinco meses desglosados por canal: orgánico,…
This website uses cookies.