Skip to content
BotServBotServ
NginxReverse ProxyWeb UILets EncryptDockerAuto-hospedaje

Nginx Proxy Manager: Reverse Proxy fácil

Nginx Proxy Manager: interfaz web para Reverse Proxy, Lets Encrypt y control de acceso. Inicio sencillo.

S

schutzgeist

9 min read
Nginx Proxy Manager: Reverse Proxy fácil

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érminoSignificado
Reverse ProxyUn servicio que reenvía solicitudes externas a servicios internos.
NginxUn servidor web versátil y reverse proxy que también actúa como balanceador de carga.
Let’s EncryptUn proveedor gratuito de certificados TLS.
SSL/TLSCifrado para conexiones HTTPS.
Proxy HostUna entrada en NPM que conecta un dominio con su destino interno.
Access ListUna regla que define quién puede acceder a un proxy host.
DockerUna plataforma para aislar aplicaciones en contenedores.
ComposeUna 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 ollama o localhost
  • 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

  1. Contraseña predeterminada no cambiada: Nginx Proxy Manager inicia con admin@example.com y changeme. Cámbiala inmediatamente, de lo contrario básicamente abres tu sistema a cualquiera.

  2. 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.

  3. 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.

  4. Servicio interno no accesible: Si localhost:11434 no funciona, Ollama probablemente esté en otra red Docker. Usa el nombre del contenedor con el puente correcto.

  5. 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.

  6. 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.

  7. 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.

  8. Permisos de volúmenes Docker: NPM almacena certificados y datos en volúmenes. Permisos incorrectos pueden impedir que se escriban certificados.

  9. 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.

  10. 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

Preguntas frecuentes

  1. ¿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.

  2. ¿Necesito port-forwarding?
    Sí, si quieres usar dominios externos directamente. Alternativamente, puedes usar Cloudflare Tunnel.

  3. ¿Funciona NPM con Ollama?
    Sí. Solo redirige el puerto 11434 a un dominio bonito.

  4. ¿Con qué frecuencia Let’s Encrypt renueva certificados?
    NPM verifica automáticamente a intervalos regulares y renueva certificados antes de su vencimiento.

  5. ¿Es NPM apropiado para principiantes?
    Sí, la interfaz gráfica facilita mucho el inicio.

  6. ¿Puedo usar múltiples dominios?
    Sí, puedes crear tantos Proxy Hosts como necesites con diferentes dominios y destinos.

  7. ¿Qué pasa si mi IP es dinámica?
    Usa DynDNS. NPM no actualiza DNS automáticamente.

  8. ¿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.

  9. ¿Puedo bloquear usuarios externos?
    Sí, mediante Access Lists con contraseña o IP whitelist.

  10. ¿Cuál es la diferencia respecto a Nginx?
    NPM es Nginx con interfaz gráfica y funciones adicionales de administración.

  11. ¿Debo escribir configuraciones de Nginx?
    No, NPM lo hace automáticamente en segundo plano. Los usuarios avanzados pueden integrar snippets propios.

  12. ¿Cómo reinicio NPM sin perder datos?
    Usa docker compose restart en 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
Volver al blog
Share:

Nächster Artikel in Auto-hospedaje

Weiterlesen
WireGuard: VPN Propio para Servicios IA

Entradas relacionadas