Cómo configurar el acceso a un entorno en contenedores usando Nginx Proxy Manager en Linux
Introducción
En este tutorial, configurarás un acceso seguro y fácil de usar a servicios en contenedores utilizando Nginx Proxy Manager. Este enfoque simplifica la gestión de proxy inverso a través de una interfaz web en lugar de una configuración manual. Instalarás Nginx Proxy Manager con Docker, lo configurarás y expondrás un servicio en contenedor a través de un dominio.
Requisitos previos
Público objetivo: Administradores de sistemas principiantes
Tiempo estimado: ~30 minutos
Objetivo final: Al final de este tutorial, tendrás una configuración funcional de Nginx Proxy Manager que enruta el tráfico externo a una aplicación en contenedor.
Requisitos del sistema:
- SO: Distribución de Linux compatible con Docker
- Docker: 24.0.6 o posterior
- Docker Compose: v2
- Mínimo 1 GB de RAM y 10 GB de espacio en disco
- Un nombre de dominio apuntando a la IP de tu servidor
- Puertos abiertos: 80, 81, 443
- Privilegios de sudo
Conocimientos requeridos:
- Uso básico de la línea de comandos de Linux
- Comprensión básica de contenedores Docker
Paso 1: Entender Nginx Proxy Manager
Nginx Proxy Manager es una herramienta basada en web que gestiona configuraciones de proxy inverso de Nginx. Te permite enrutar tráfico a diferentes servicios usando nombres de dominio, habilitar certificados SSL y gestionar reglas de acceso sin editar archivos de configuración manualmente.
Características clave:
- Interfaz web para gestión de proxy
- SSL automático a través de Let's Encrypt
- Control de acceso y autenticación
- Fácil integración con entornos Docker
Resultado: Comprendes cómo Nginx Proxy Manager simplifica la exposición de servicios en contenedores.
Paso 2: Instalar Docker y Docker Compose
Instala Docker usando un comando simple:
curl -sSL https://get.docker.com/ | CHANNEL=stable bash
Verifica la instalación de Docker:
docker --version
Verifica Docker Compose:
docker compose version
Resultado: Docker y Docker Compose están instalados y listos para usar.
Paso 3: Configurar Nginx Proxy Manager
Crea un directorio de proyecto:
mkdir ~/npm && cd ~/npm
Crea un archivo de configuración:
nano docker-compose.yml
Inserta el contenido de configuración:
version: "3" services: app: image: jc21/nginx-proxy-manager:latest restart: always ports: - "80:80" - "81:81" - "443:443" volumes: - ./data:/data - ./letsencrypt:/etc/letsencrypt
Guarda el archivo y sal.
Inicia el servicio:
docker compose up -d
Resultado: El contenedor de Nginx Proxy Manager está en ejecución y escuchando en los puertos requeridos.
Paso 4: Acceder a la Interfaz Web

Abre tu navegador y ve a: http://<TU_DIRECCIÓN_IP>:81
Credenciales de inicio de sesión predeterminadas:
- Email:
[email protected] - Contraseña:
changeme
Actualiza tus credenciales cuando se te solicite.
Resultado: Puedes acceder y gestionar Nginx Proxy Manager a través de la interfaz web.
Paso 5: Desplegar un Contenedor de Prueba
Ejecuta un contenedor web de prueba:
docker run -d --name test-app -p 8080:80 nginx
Verifica el acceso abriendo: http://<TU_DIRECCIÓN_IP>:8080
Resultado: Un contenedor de prueba está en ejecución y accesible localmente.
Paso 6: Crear un Host Proxy

En la interfaz de Nginx Proxy Manager:
- Haz clic en "Proxy Hosts"
- Haz clic en "Add Proxy Host"
- Introduce el dominio:
<TU_DOMINIO> - Nombre de host o IP de reenvío:
localhost - Puerto de reenvío:
8080 - Habilita "Block Common Exploits"
- Guarda la configuración
Resultado: El tráfico desde tu dominio se enruta al contenedor.
Paso 7: Habilitar SSL

Edita el host proxy:
- Abre la pestaña SSL
- Selecciona Request a new SSL Certificate
- Habilita Force SSL
- Habilita HTTP/2 Support
- Introduce tu correo electrónico y acepta los términos
- Guarda los cambios
SSL requiere registros DNS correctos apuntando tu dominio a tu servidor.
Resultado: HTTPS está habilitado y asegurado con un certificado válido.
Verificación
Abre tu dominio: https://<TU_DOMINIO>
Resultados esperados:
- La página de prueba de Nginx se carga
- El navegador muestra un certificado SSL válido
- No aparecen advertencias de seguridad
Verifica los contenedores en ejecución:
docker ps
Resultado: El proxy inverso funciona correctamente y enruta el tráfico de manera segura.
Revertir Cambios
Detén los servicios:
docker compose down
Elimina el contenedor de prueba:
docker rm -f test-app
Elimina los archivos del proyecto:
rm -rf ~/npm
Importante: Esto elimina todas las configuraciones y certificados SSL.
Resultado: Todos los cambios se revierten y el sistema está limpio.
Solución de Problemas
Problema: No se puede acceder a la interfaz web
Solución: Asegúrate de que el puerto 81 esté abierto y no utilizado por otro servicio
Problema: La generación del certificado SSL falla
Solución: Verifica que la configuración DNS apunte a tu servidor
Problema: El host proxy no funciona
Solución: Verifica el estado del contenedor con docker ps y los registros con docker logs <CONTAINER_ID>
Resultado: Los problemas comunes se identifican y resuelven.
Conclusión y Próximos Pasos
Instalaste y configuraste Nginx Proxy Manager usando Docker y expusiste un servicio en contenedor con un dominio y SSL. Esta configuración proporciona una forma simple y escalable de gestionar múltiples servicios.
Próximos pasos:
- Agrega servicios adicionales detrás de diferentes dominios
- Configura listas de control de acceso
- Explora configuraciones avanzadas de proxy y seguridad