Cómo configurar el acceso a un entorno en contenedores usando Nginx Proxy Manager en Linux | INTROSERV
EUR
european

EUR

usa

USD

Spanish Es
Ex. VAT Ex. VAT 0%

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

Pantalla de inicio de sesión de Nginx Proxy Manager

Abre tu navegador y ve a: http://<TU_DIRECCIÓN_IP>:81

Credenciales de inicio de sesión predeterminadas:

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

Diálogo de Añadir Host Proxy en Nginx Proxy Manager

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

Pestaña de configuración SSL en Nginx Proxy Manager

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

Info

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

Info

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

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • germany
  • Español
  • Italiano
  • Poland
  • Русский
  • Slovenski
  • Türkçe
  • ukraine
  • kingdom
  • French
  • Hrvatska
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA