Nginx Proxy Manager: Reverse Proxy sin complicaciones
Qué cubre este artículo
- Qué es Nginx Proxy Manager y por qué facilita las cosas a los principiantes
- Cómo configurar un reverse proxy en Docker con apenas unos clics
- Cómo funcionan los certificados automáticos de Let’s Encrypt
- Qué opciones de seguridad están disponibles para tus servicios de IA
- Dónde están las principales trampas iniciales y cómo evitarlas
Introducción
Si quieres ejecutar herramientas de IA locales como Ollama, sitios web u otros servicios en tu red doméstica, tarde o temprano te encontrarás con el término reverse proxy. Un reverse proxy recibe solicitudes de internet y las envía al servicio interno correspondiente. Suena técnico, pero es la base para tener dominios limpios, HTTPS y mejor seguridad.
Nginx Proxy Manager, o NPM, es una interfaz web gráfica para exactamente esta tarea. Detrás está el conocido servidor web Nginx, pero no tienes que escribir archivos de configuración a mano. En su lugar, haces clic a través de formularios, solicitas certificados TLS gratuitos a través de Let’s Encrypt y administras listas de acceso. Para self-hosting es una ventaja real porque ahorra mucho tiempo.
En este artículo aprenderás cómo instalar Nginx Proxy Manager con Docker, configurar tu primer dominio y hacer que Ollama u otro servicio de IA sea accesible de forma segura desde el exterior. Temas como certificados TLS y redes los encontrarás en las categorías correspondientes en nuestro sitio. Una alternativa que no requiere port forwarding es Tailscale.
Por qué Nginx Proxy Manager
Nginx Proxy Manager simplifica significativamente el trabajo con un reverse proxy. En configuraciones clásicas editas archivos de texto, pruebas la sintaxis y reinicas el servicio. Con NPM haces todo en una ventana del navegador. Creas un host proxy, seleccionas el dominio, ingresas la dirección interna y el puerto, y decides si SSL debe estar activo.
Lo mejor: los certificados de Let’s Encrypt se pueden solicitar y renovar directamente desde la interfaz web. Obtienes conexiones HTTPS válidas para tus subdominios sin necesidad de comprar certificados ni administrarlos manualmente. Para servicios de IA como Ollama significa que tu conexión del navegador permanece cifrada y al mismo tiempo puedes usar dominios bonitos como ollama.example.de.
Nginx Proxy Manager explicado brevemente
Nginx es un servidor web y reverse proxy muy popular. Nginx Proxy Manager es un contenedor Docker que empaqueta Nginx, un backend gráfico y una base de datos. Después del inicio accedes a la interfaz web a través de un navegador. Allí administras hosts, certificados, redirecciones y listas de acceso.
Cada host proxy consiste en un dominio, una dirección de destino para la redirección y configuraciones opcionales como SSL, HSTS o ubicaciones avanzadas. Una vez que guardas una entrada, NPM genera la configuración Nginx correspondiente en segundo plano y la recarga. No te das cuenta de nada excepto que tu servicio está accesible.
A quién va dirigido este artículo
Este artículo está orientado a principiantes en self-hosting que ya conocen Docker o quieren aprenderlo rápidamente. Debes tener tu propio servidor, un NAS o una Raspberry Pi con Linux y Docker. Los conocimientos básicos de Linux y Docker ayudan pero no son estrictamente necesarios. Si aún no has configurado Docker, échale un vistazo a nuestro artículo sobre fundamentos de Docker.
Si prefieres usar la infraestructura de Cloudflare, también encontrarás aquí el artículo sobre Cloudflare Tunnel. NPM es la opción correcta si quieres usar tu propio dominio con tus propios certificados TLS.
Términos importantes
| Término | Significado |
|---|---|
| Reverse Proxy | Un servicio que reenvía solicitudes externas a servicios internos. |
| Nginx | Un servidor web versátil y reverse proxy que también actúa como balanceador de carga. |
| Let’s Encrypt | Un proveedor gratuito de certificados TLS. |
| SSL/TLS | Cifrado para conexiones HTTPS. |
| Proxy Host | Una entrada en NPM que conecta un dominio con su destino interno. |
| Access List | Una regla que define quién puede acceder a un proxy host. |
| Docker | Una plataforma para aislar aplicaciones en contenedores. |
| Compose | Una forma de iniciar múltiples contenedores Docker usando un archivo YAML. |
Requisitos previos para la instalación
Necesitas un sistema Linux con Docker y Docker Compose instalados. Muchos principiantes usan Ubuntu, Debian o un NAS con soporte para contenedores. Asegúrate de que tu usuario pertenece al grupo Docker o ejecuta comandos con sudo. Tu servidor debe ser accesible desde internet, es decir, tener los puertos públicos 80 y 443 abiertos. Para eso necesitas configurar port forwarding en tu router.
Además necesitas tu propio dominio cuyo DNS apunte a tu IP pública. Puede ser en Cloudflare, Hetzner, INWX o cualquier otro registrador. Debes crear al menos una subdominio como ollama.example.de que apunte a tu dirección IP pública. Si tienes una IP dinámica usa un servicio de DynDNS.
Si aún tienes incertidumbre sobre redes, encontrarás los fundamentos en el artículo Redes. Para temas de seguridad te recomendamos Seguridad de redes.
Instalación con Docker Compose
La instalación más limpia de Nginx Proxy Manager se realiza con Docker. Crea una carpeta en tu servidor y dentro un archivo llamado docker-compose.yml con el siguiente contenido:
version: "3.8"
services:
npm:
image: jc21/nginx-proxy-manager:latest
container_name: npm
restart: unless-stopped
ports:
- "80:80"
- "81:81"
- "443:443"
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
environment:
- DB_SQLITE_FILE=/data/database.sqlite
Guarda el archivo e inicia el contenedor:
cd /opt/npm
docker compose up -d
El primer inicio puede tardar unos segundos. Después la interfaz web es accesible en http://DEINE_SERVER_IP:81. Las credenciales predeterminadas son admin@example.com y changeme. Se te pedirá que establezcas una nueva contraseña en el primer inicio de sesión.
Crear tu primer host proxy
Inicia sesión en Nginx Proxy Manager. Haz clic en Hosts y luego en Proxy Hosts. Allí seleccionas Add Proxy Host. En el formulario ingresa los siguientes valores:
- Domain Names:
ollama.example.de - Forward Hostname / IP: La IP o el nombre de tu contenedor Ollama, por ejemplo
ollamaolocalhost - Forward Port:
11434 - Block Common Exploits: activado
- Websockets Support: activado opcionalmente
Guarda la entrada. Tu servicio interno ahora es accesible bajo tu dominio, pero aún sin HTTPS.
Activar HTTPS con Let’s Encrypt
Edita el host proxy que acabas de crear y ve a la pestaña SSL. Selecciona Request a new SSL Certificate. Asegúrate de que el dominio realmente apunta a tu IP pública porque Let’s Encrypt debe verificar la propiedad. Acepta los términos de servicio y guarda.
Después de unos segundos deberías recibir un certificado válido. Activa además Force SSL para que todas las solicitudes no cifradas se redirijan automáticamente a HTTPS. Opcionalmente activas HTTP/2 Support y HSTS.
A partir de ahora Ollama es accesible bajo https://ollama.example.de. Tus datos se transmiten cifrados y el navegador muestra el símbolo de candado.
Configurar el control de acceso
No todos los servicios deberían estar expuestos públicamente en la red. En NPM puedes crear listas de acceso para restringir quién puede conectarse. Puedes hacerlo mediante direcciones IP, nombre de usuario y contraseña, o una combinación de ambos. HTTP Basic Auth es especialmente recomendable, ya que el navegador solicita las credenciales directamente.
Para cada servicio de IA pública que no esté destinado al mundo entero, configura al menos una contraseña. Ten en cuenta que la IP whitelist es problemática con direcciones dinámicas o móviles. Usuario y contraseña ofrecen mucha más flexibilidad.
Errores comunes
-
Contraseña predeterminada no cambiada: Nginx Proxy Manager inicia con
admin@example.comychangeme. Cámbiala inmediatamente, de lo contrario básicamente abres tu sistema a cualquiera. -
Puerto 81 no expuesto: Necesitas el puerto 81 para la interfaz web. Si solo has abierto 80 y 443, no podrás acceder al panel de control.
-
El dominio aún no apunta a la IP: Let’s Encrypt solo funciona si el registro DNS es correcto y ya se ha propagado. Paciencia y verificación de DNS ayudan.
-
Servicio interno no accesible: Si
localhost:11434no funciona, Ollama probablemente esté en otra red Docker. Usa el nombre del contenedor con el puente correcto. -
Límites de velocidad de Let’s Encrypt: Si fallas demasiadas veces, Let’s Encrypt bloqueará tu dominio temporalmente. Verifica DNS y accesibilidad antes de reintentar.
-
Proxy de Cloudflare interfiere con Let’s Encrypt: Si tu dominio corre a través de Cloudflare y está en modo proxied, Let’s Encrypt no puede validar la IP. Cambia temporalmente a DNS only.
-
Firewall bloquea puertos: Asegúrate de que el firewall de tu servidor permita tráfico entrante en los puertos 80, 443 y 81. De lo contrario, HTTPS y la interfaz web fallarán.
-
Permisos de volúmenes Docker: NPM almacena certificados y datos en volúmenes. Permisos incorrectos pueden impedir que se escriban certificados.
-
HTTPS rojo en el navegador: Cuando un navegador muestra una advertencia roja, generalmente el certificado ha expirado, HSTS está mal configurado o el dominio no coincide.
-
La caché impide cambios: Después de cambios de configuración, puede ayudar reiniciar el contenedor o borrar la caché del navegador.
Hardware, costes y seguridad
Nginx Proxy Manager consume muy pocos recursos. Funciona sin problemas en un Raspberry Pi 4, un VPS pequeño o un NAS. Solo necesitas más potencia si ejecutas muchas solicitudes paralelas o contenedores adicionales. Para una red doméstica normal, un Pi o un servidor económico es suficiente.
Los costes provienen de tu dominio, posiblemente DynDNS y tu consumo eléctrico. Los certificados Let’s Encrypt son gratuitos. Si alojitas en Cloudflare u otro proveedor, suma los precios de dominio correspondientes. En cuanto a seguridad, NPM es una solución sólida si activas HTTPS, Access Lists y Block Common Exploits.
No olvides configurar el firewall local y abre solo los puertos que realmente necesitas. Actualizar regularmente el contenedor es tan importante como usar contraseñas seguras.
Enlaces relacionados
- Descripción general del Self-Hosting
- Fundamentos de redes
- Tailscale como alternativa
- Fundamentos de Docker
- Reverse Proxy en detalle
- Certificados TLS explicados
- Acceso de red con Ollama
Preguntas frecuentes
-
¿Nginx Proxy Manager cuesta algo?
No, el proyecto es Open Source y se puede usar de forma gratuita. Los costes surgen solo por el dominio u hosting. -
¿Necesito port-forwarding?
Sí, si quieres usar dominios externos directamente. Alternativamente, puedes usar Cloudflare Tunnel. -
¿Funciona NPM con Ollama?
Sí. Solo redirige el puerto 11434 a un dominio bonito. -
¿Con qué frecuencia Let’s Encrypt renueva certificados?
NPM verifica automáticamente a intervalos regulares y renueva certificados antes de su vencimiento. -
¿Es NPM apropiado para principiantes?
Sí, la interfaz gráfica facilita mucho el inicio. -
¿Puedo usar múltiples dominios?
Sí, puedes crear tantos Proxy Hosts como necesites con diferentes dominios y destinos. -
¿Qué pasa si mi IP es dinámica?
Usa DynDNS. NPM no actualiza DNS automáticamente. -
¿Mis datos están encriptados entonces?
Con SSL habilitado sí, al menos entre el navegador y Nginx Proxy Manager. El tráfico interno funciona en la red Docker. -
¿Puedo bloquear usuarios externos?
Sí, mediante Access Lists con contraseña o IP whitelist. -
¿Cuál es la diferencia respecto a Nginx?
NPM es Nginx con interfaz gráfica y funciones adicionales de administración. -
¿Debo escribir configuraciones de Nginx?
No, NPM lo hace automáticamente en segundo plano. Los usuarios avanzados pueden integrar snippets propios. -
¿Cómo reinicio NPM sin perder datos?
Usadocker compose restarten la carpeta del proyecto. Los datos se conservan en los volúmenes.
Fuentes
- Documentación de Nginx Proxy Manager: nginxproxymanager.com
- Documentación oficial de Nginx: nginx.org
- Documentación de Let’s Encrypt: letsencrypt.org
- Referencia de Docker Compose: docker.com
- Documentación oficial de Ollama: ollama.com
- Guías comunitarias de Cloudflare sobre configuración de DNS


