Homelab y autoalojamiento

Varios servicios detrás de un mismo servidor con Nginx Proxy Manager

Si en un mismo servidor viven varios proyectos, tarde o temprano chocas con los puertos 80 y 443, que solo puede escuchar un proceso. Un artículo de Habr del blog de Selectel muestra paso a paso cómo resolverlo con Nginx Proxy Manager.

El autor explica primero el problema: los puertos privilegiados, la regla de un único oyente por puerto, los problemas de CORS cuando el frontend y el backend se separan por puertos y la falta de HTTPS. Un proxy inverso lo resuelve como intermediario, enrutando el tráfico por dominio y ruta. Una ventaja adicional es que el cortafuegos solo necesita los puertos 22, 80 y 443 abiertos.

El entorno de prueba es un VDS con 2 vCPU, 2 GB de RAM y 40 GB NVMe, con Ubuntu 24.04 y Docker del repositorio oficial. Se crea la red con docker network create proxy y se lanza el contenedor jc21/nginx-proxy-manager con volúmenes para datos y certificados. Me gustó que el panel de administración en el puerto 81 se vincule solo a 127.0.0.1 y se acceda por túnel SSH.

Después se configura un host de proxy: en Forward Hostname se pone el nombre del contenedor y el certificado SSL se asocia en la pestaña SSL. Para las pruebas se usa traefik/whoami. También se trata por separado el caso en que la aplicación corre directamente en el host: la dirección de la puerta de enlace de la red Docker se obtiene con docker network inspect, y el cortafuegos se configura para que no se pueda acceder a la aplicación saltándose el proxy.

Hay también algunos puntos débiles: los ejemplos mezclan dominios distintos y la imagen usa la etiqueta latest, lo que puede afectar a la reproducibilidad con el tiempo. Aun así, es un buen punto de partida para quien quiera tener varios servicios en casa o en un VDS sin editar a mano la configuración de nginx.

Fuente: Habr (blog de Selectel)

Comentarios 0

Deja el primer comentario, en el idioma que quieras.

Inicia sesión para comentar