Esta guía está diseñada para profesionales y administradores de sistemas que buscan implementar Nginx Proxy Manager (NPM) en una infraestructura de cloud pública Aire Cloud. Abordaremos desde el despliegue inicial de la infraestructura de red y la instancia de máquina virtual con doble interfaz, hasta la instalación detallada y la configuración fundamental de Nginx Proxy Manager para optimizar la gestión de tráfico y la seguridad de sus servicios web internos.
El objetivo es proporcionar una documentación clara y precisa que permita a los usuarios replicar este entorno de manera eficiente y segura, aprovechando las capacidades del orquestador y la flexibilidad de Nginx Proxy Manager.
Esta guía se estructura en dos secciones principales: la preparación de la infraestructura en Aire Cloud y la instalación y configuración de Nginx Proxy Manager.
Para garantizar un funcionamiento óptimo y seguro, la instancia de Nginx Proxy Manager se configurará con dos interfaces de red. Una de ellas se conectará a la red externa, disponiendo de una dirección IP pública fija para la accesibilidad desde Internet. La segunda interfaz se conectará a una red interna aislada, donde residirán los servicios y aplicaciones que Nginx Proxy Manager gestionará. Adicionalmente, se establecerá un grupo de seguridad específico para esta instancia, aplicando el principio de mínimo privilegio.
El primer paso es la creación de una red interna dedicada a sus servicios. Esta red proporcionará un entorno aislado y seguro para sus máquinas virtuales (VMs) de backend, separándolas del tráfico público directo.
Para iniciar, navegue en el menú lateral en el orquestador hasta Networking --> Redes.
Una vez en la pantalla de "Redes", localice y pulse el botón + (o la opción equivalente para "Crear Red").
Se presentará un formulario para la configuración de la nueva red. Los campos obligatorios se identifican con un asterisco (*).
Nombre de la red: Asigne un nombre claro y descriptivo para la red interna (ej. red-interna-servicios). Este nombre facilitará su identificación en la topología de la red.
Estado de administración: Asegúrese de que esta opción esté marcada como Activa para que la red esté operativa tras su creación.
Descripción: Añada una descripción concisa que detalle el propósito de esta red (ej. "Red para VMs de servicios internos gestionados por Nginx Proxy Manager").
MTU (Maximum Transmission Unit): La MTU define el tamaño máximo de los paquetes de datos que pueden ser transmitidos a través de la red. El valor predeterminado de 1500 bytes es adecuado para la mayoría de los escenarios. Solo modifique este valor si tiene requisitos específicos para el tamaño de los paquetes transmitidos, como en entornos de Jumbo Frames.
Una vez configurados estos parámetros iniciales, pulse "Siguiente" para proceder a la configuración de la subred asociada.
La subred es un segmento lógico dentro de su red interna, donde se asignarán las direcciones IP a las VMs.
Nombre de la subred: Defina un nombre para la subred (ej. subred-interna-servicios).
Descripción: Proporcione una descripción para la subred, si es necesario.
Dirección de red: Especifique el rango de direcciones IP privadas para esta subred en formato CIDR (Classless Inter-Domain Routing). Es crucial utilizar un rango de IPs privadas (ej., 10.0.0.0/24, 172.16.0.0/24, 192.168.0.0/24) para garantizar el aislamiento y la seguridad. Por ejemplo, 10.0.0.0/24 asignará direcciones IP desde 10.0.0.1 hasta 10.0.0.254.
Versión de IP (*): Actualmente, el orquestador soporta la configuración de la puerta de enlace en IPV4.
IP de la puerta de enlace: Ingrese la dirección IP que actuará como la puerta de enlace principal para esta subred (ej. 10.0.0.1). Esta será la dirección que las VMs en esta subred utilizarán para comunicarse con otras redes.
DHCP (Dynamic Host Configuration Protocol): Marque esta opción para activar el servidor DHCP en la subred. Se recomienda encarecidamente tener el DHCP activado, ya que facilita la asignación automática de direcciones IP a las nuevas instancias y previene problemas de arranque.
Una vez que la red interna y su subred asociada estén configuradas y activas, procederemos a desplegar la máquina virtual que alojará Nginx Proxy Manager. Esta VM estará equipada con dos interfaces de red para gestionar eficazmente el tráfico entrante y saliente.
Diríjase a la pantalla de gestión de instancias a través del menú lateral Virtual Datacenter --> Instancias.
Una vez en la pantalla de "Instancias", pulse el botón + (o la opción equivalente para "Crear instancia") para iniciar el proceso de creación.
Se desplegará un formulario de creación con varias secciones que deberá completar:
Esta sección permite definir las características fundamentales de la instancia.
Número de Instancias: Para este despliegue, mantenga el valor en 1.
Nombre: Asigne un nombre distintivo a su instancia, como nginx-proxy-manager. Este nombre será visible en la consola del orquestador.
Permanente/Efímera: Seleccione Permanente. Una instancia permanente conservará su configuración y datos a través de reinicios y apagados, lo cual es esencial para un servicio como Nginx Proxy Manager. Las instancias efímeras se eliminan al apagarse.
Multiboot: No seleccione esta opción, ya que estamos realizando una instalación estándar de un sistema operativo.
Después de configurar los detalles, pulse "Siguiente" para avanzar a la sección de Origen.
Aquí seleccionará la imagen base del sistema operativo para su instancia y configurará el almacenamiento.
Selección de Imagen: Elija la opción para lanzar la instancia a partir de una imagen del catálogo del orquestador. Utilice los filtros si es necesario y seleccione Ubuntu Server 24.04 LTS. Esta es una versión LTS (Long Term Support) que ofrece estabilidad y soporte a largo plazo.
Tipo de volumen: Seleccione un tipo de volumen adecuado del catálogo NetAPP. Para Nginx Proxy Manager, que principalmente gestiona configuraciones y certificados, las necesidades de almacenamiento son moderadas. Un sabor básico de NetAPP será suficiente para la mayoría de los casos.
Tamaño del dispositivo: Deje el tamaño mínimo por defecto (ej. 10GB). Este tamaño es adecuado para el sistema operativo, los archivos de Docker y los datos de configuración y certificados de Nginx Proxy Manager.
Una vez configurado el origen, pulse "Siguiente".
En esta sección, asignará los recursos de computación (CPU y RAM) a su instancia.
vCPUs: Para un servidor dedicado a Nginx Proxy Manager, que principalmente actúa como un proxy inverso y gestiona certificados, 1 vCPU es generalmente suficiente para la mayoría de los escenarios, incluso con un volumen considerable de tráfico. Si anticipa un tráfico extremadamente alto o planea ejecutar servicios adicionales en esta misma VM, podría considerar 2 vCPUs.
RAM (GB): Una cantidad de 1 GB de RAM es típicamente suficiente para Nginx Proxy Manager. Si prevé la necesidad de herramientas de monitoreo adicionales, un mayor número de hosts proxy o aplicaciones ligeras coexistiendo en la misma VM, podría optar por 2 GB de RAM.
Tipo de vCPU: Seleccione el tipo de vCPU que mejor se adapte a sus requisitos de rendimiento y a las opciones disponibles en el orquestador.
Una vez seleccionadas las especificaciones, pulse "Siguiente" para configurar la conectividad de red.
Esta es una sección crítica donde configurará las dos interfaces de red para su instancia de Nginx Proxy Manager.
Primera Interfaz (Red Externa - Tráfico Público):
En la primera opción de conectividad, seleccione la red externa de su proyecto. Esta interfaz será el punto de entrada para el tráfico web desde Internet.
Busque y seleccione el puerto existente que esté asociado a su IP pública fija. Es fundamental que esta IP sea estática para la correcta resolución de DNS y la gestión de certificados SSL. Si aún no tiene un puerto con una IP pública fija, deberá crearlo y asignarle la IP deseada.
Asegúrese de que la asignación de IP esté configurada como Manual y que la IP fija esté correctamente asignada a este puerto.
Segunda Interfaz (Red Interna - Comunicación con Servicios Backend):
Localice y haga clic en la opción para añadir una nueva interfaz (el botón puede ser + Añadir interfaz, + Agregar puerto de red, o similar).
Seleccione la red interna que creó en el paso 1. Esta interfaz permitirá a Nginx Proxy Manager comunicarse con sus servicios internos de forma segura y privada.
Puede optar por seleccionar un puerto existente en la red interna o crear uno nuevo. Si selecciona DHCP, la instancia recibirá una IP automáticamente del rango de la subred interna. Para una mayor predictibilidad y facilidad de configuración de los servicios internos, se recomienda configurar la asignación de IP como Manual y especificar una IP privada estática (ej. 10.0.0.10) dentro del rango de su subred interna.
¡Importante! Consideraciones para las VMs de Servicios Internos:
Las máquinas virtuales que despliegue en esta red interna (ej. servidores Nextcloud, bases de datos, aplicaciones web) y que vayan a recibir tráfico a través de Nginx Proxy Manager, deben contar con un grupo de seguridad que permita el tráfico en los puertos necesarios para sus servicios. Las reglas de entrada de estos grupos de seguridad deben permitir el tráfico desde la IP de la interfaz interna de Nginx Proxy Manager (ej.10.0.0.10) o, de forma más general, desde el rango completo de la subred interna (ej.10.0.0.0/24). Esto asegura que Nginx Proxy Manager pueda enrutar las peticiones a los servicios de backend.
Asegúrese de que ambas redes (externa e interna) estén correctamente listadas y configuradas en la sección de conectividad de la instancia antes de continuar. Una vez satisfecho con la configuración de ambas interfaces de red, pulse "Siguiente".
En esta sección, asociará un grupo de seguridad a su instancia de Nginx Proxy Manager. Este grupo de seguridad actuará como un firewall a nivel de instancia, controlando el tráfico de red entrante y saliente.
Durante el asistente de creación de la instancia, en la sección de Grupos de Seguridad, tendrá la opción de asociar un grupo de seguridad existente o crear uno nuevo.
Asociar un grupo de seguridad existente:
Si ya tiene un grupo de seguridad configurado con las reglas necesarias, simplemente selecciónelo de la lista.
Crear un nuevo grupo de seguridad:
Si necesita crear un nuevo grupo de seguridad específico y granular para Nginx Proxy Manager, puede hacerlo directamente desde este asistente. Asigne un nombre descriptivo, como nginx-proxy-manager-sg.
Configurar las reglas de entrada: Haga clic en el icono de engranaje (o la opción equivalente para "Editar reglas") para configurar las siguientes reglas de entrada, aplicando el principio de mínimo privilegio:
0.0.0.0/0) o desde los rangos de IP que necesiten acceder a sus servicios web no seguros.0.0.0.0/0) o desde los rangos de IP que necesiten acceder a sus servicios web seguros.No es necesario configurar reglas de salida a menos que tenga requisitos específicos. Por defecto, las instancias suelen tener tráfico de salida permitido.
Una vez configurado el grupo de seguridad, pulse "Siguiente" para continuar.
Después de configurar los grupos de seguridad, el siguiente paso en el asistente de creación de la instancia es la asociación de un par de claves SSH. Para asegurar el acceso seguro a su instancia de máquina virtual, es fundamental asociar un par de claves SSH.
Seleccione o cree un nuevo par de claves:
En la pantalla del asistente de creación de la instancia, en la sección de "Acceso" o "Claves SSH" (que aparece después de la configuración de Grupos de Seguridad), tendrá la opción de seleccionar un par de claves SSH existente de su cuenta en el orquestador o de crear uno nuevo directamente desde esta interfaz.
Si selecciona un par de claves existente: Simplemente elija el nombre del par de claves que desea utilizar de la lista desplegable.
Si necesita crear uno nuevo:
Haga clic en la opción para "Crear nuevo par de claves" (o similar).
Asigne un nombre descriptivo a su par de claves (ej. npm-ssh-key).
Seleccione el tipo de clave (generalmente RSA es suficiente).
Haga clic en "Crear".
¡Importante! El orquestador le proporcionará la clave privada para descargarla en este momento. Guárdela en un lugar seguro y con permisos restringidos en su máquina local (ej.
chmod 400 su_clave_privada.pem). No comparta esta clave con nadie. La clave pública se almacenará automáticamente en el orquestador y se asociará a su instancia.
Con la infraestructura de red, la instancia base, el grupo de seguridad y el par de claves SSH configurados, estamos listos para lanzar la instancia. Después de asociar el par de claves, puede hacer clic en "Siguiente" en las pantallas restantes (como "Configuración Avanzada", "Revisar y Lanzar") hasta llegar a la confirmación final y lanzar la instancia. Estas pantallas subsiguientes generalmente no requieren configuraciones adicionales para un despliegue estándar de Nginx Proxy Manager.
Una vez que la instancia de máquina virtual está desplegada y las interfaces de red están configuradas correctamente, el siguiente paso es instalar y configurar Nginx Proxy Manager. Utilizaremos Docker y Docker Compose para un despliegue sencillo y eficiente.
Para comenzar, necesitará acceder a su instancia de Ubuntu Server 24.04 LTS a través de SSH. Asegúrese de tener la clave SSH privada asociada a la instancia.
Conéctese a la instancia vía SSH:
Abra su terminal o cliente SSH y use el siguiente comando, reemplazando su_clave_ssh.pem con la ruta a su clave privada y su_ip_publica con la dirección IP pública de la interfaz externa de su instancia de Nginx Proxy Manager.
ssh -i /ruta/a/su_clave_ssh.pem ubuntu@su_ip_publica
Si es la primera vez que se conecta, es posible que se le pida confirmar la huella digital del servidor. Escriba yes y presione Enter.
Actualice el sistema:
Una vez conectado, es fundamental actualizar los paquetes del sistema para asegurar que tiene las últimas versiones y parches de seguridad.
sudo apt update
sudo apt upgrade -y
El comando sudo apt update refresca la lista de paquetes disponibles y sudo apt upgrade -y instala todas las actualizaciones pendientes sin pedir confirmación.
Nginx Proxy Manager se ejecuta como un conjunto de contenedores Docker. Por lo tanto, necesitamos instalar Docker y Docker Compose en la instancia.
Instalar Docker:
Ejecute los siguientes comandos para instalar Docker. El primer comando instala los paquetes necesarios para permitir que apt use repositorios HTTPS, el segundo añade la clave GPG oficial de Docker, el tercero configura el repositorio de Docker, y el último instala Docker Engine.
sudo apt install ca-certificates curl gnupg lsb-release -y
sudo mkdir -p /etc/apt/keyrings
curl -fsSL [https://download.docker.com/linux/ubuntu/gpg](https://download.docker.com/linux/ubuntu/gpg) | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] [https://download.docker.com/linux/ubuntu](https://download.docker.com/linux/ubuntu) \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
Verificar la instalación de Docker:
Para asegurarse de que Docker se ha instalado correctamente, ejecute el siguiente comando. Debería ver un mensaje indicando que Docker está funcionando.
sudo systemctl status docker
También puede ejecutar una imagen de prueba:
sudo docker run hello-world
Añadir su usuario al grupo docker (opcional pero recomendado):
Para ejecutar comandos de Docker sin sudo, añada su usuario al grupo docker. Esto le permitirá gestionar contenedores sin privilegios de root.
sudo usermod -aG docker ${USER}
Después de ejecutar este comando, deberá cerrar la sesión SSH y volver a iniciarla para que los cambios surtan efecto.
Ahora que Docker y Docker Compose están instalados, puede desplegar Nginx Proxy Manager.
Cree un directorio para Nginx Proxy Manager:
Este directorio contendrá el archivo docker-compose.yml y los volúmenes de datos persistentes.
mkdir nginx-proxy-manager
cd nginx-proxy-manager
Cree el archivo docker-compose.yml:
Este archivo define los servicios (contenedores), redes y volúmenes necesarios para Nginx Proxy Manager. Utilice un editor de texto como nano o vim.
nano docker-compose.yml
Pegue el siguiente contenido en el archivo:
version: '3.8'
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- '80:80' # Puerto HTTP para el tráfico web entrante
- '443:443' # Puerto HTTPS para el tráfico web seguro entrante
- '81:81' # Puerto de la interfaz de administración de Nginx Proxy Manager
volumes:
- ./data:/data # Volumen para datos de configuración y certificados
- ./letsencrypt:/etc/letsencrypt # Volumen para certificados Let's Encrypt
db:
image: 'mariadb:10.6'
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: 'npm_root_password' # ¡CAMBIE ESTA CONTRASEÑA!
MYSQL_DATABASE: 'npm'
MYSQL_USER: 'npm'
MYSQL_PASSWORD: 'npm_password' # ¡CAMBIE ESTA CONTRASEÑA!
volumes:
- ./mysql:/var/lib/mysql # Volumen para la base de datos de MariaDB
¡Importante!
- Cambie las contraseñas
MYSQL_ROOT_PASSWORDyMYSQL_PASSWORDpor contraseñas seguras y únicas.- Los volúmenes (
./data,./letsencrypt,./mysql) aseguran que sus configuraciones, certificados y datos de la base de datos persistan incluso si los contenedores se detienen o se eliminan. Estos directorios se crearán automáticamente en el mismo lugar donde guarde el archivodocker-compose.yml.
Guarde el archivo (Ctrl+O, Enter, Ctrl+X en nano).
Levante los contenedores de Nginx Proxy Manager:
Desde el mismo directorio donde guardó docker-compose.yml, ejecute el siguiente comando:
docker compose up -d
Este comando descargará las imágenes de Docker necesarias y levantará los servicios en segundo plano (-d para "detached mode"). Espere unos minutos para que los contenedores se inicien completamente.
Verifique que los contenedores estén funcionando:
Puede comprobar el estado de los contenedores con:
docker compose ps
Debería ver los servicios app y db con un estado Up.
Una vez que los contenedores estén en funcionamiento, puede acceder a la interfaz web de Nginx Proxy Manager para la configuración inicial.
Acceda a la interfaz web:
Abra su navegador web y navegue a la dirección IP pública de su instancia de Nginx Proxy Manager, seguida del puerto 81.
http://su_ip_publica:81
Credenciales por defecto:
La primera vez que acceda, se le pedirá iniciar sesión con las credenciales por defecto:
admin@example.comchangemeCambie las credenciales por defecto:
Una vez que inicie sesión, Nginx Proxy Manager le pedirá inmediatamente que cambie el email y la contraseña. Es crucial que haga esto por motivos de seguridad. Utilice un email real y una contraseña fuerte.
El objetivo principal de Nginx Proxy Manager es crear "Proxy Hosts" para enrutar el tráfico desde sus dominios públicos a sus servicios internos.
Asegúrese de que su dominio apunta a la IP pública:
Antes de crear un Proxy Host, asegúrese de que el registro DNS de su dominio (ej. midominio.com o app.midominio.com) apunta a la dirección IP pública de su instancia de Nginx Proxy Manager. Esto se hace en el panel de control de su proveedor de DNS.
Cree un nuevo Proxy Host:
Hosts --> Proxy Hosts.Add Proxy Host.Complete los siguientes campos:
app.midominio.com). Puede añadir múltiples dominios separados por comas.http o https dependiendo de cómo su servicio backend esté escuchando el tráfico. Para la mayoría de las aplicaciones, http es suficiente si el tráfico entre NPM y el backend es interno y seguro.10.0.0.20).80, 3000, 8080).Configuración SSL (Recomendado):
Para habilitar HTTPS y obtener un certificado Let's Encrypt:
SSL.Request a new SSL Certificate.Force SSL para redirigir automáticamente todo el tráfico HTTP a HTTPS.HTTP/2 Support para un mejor rendimiento.HSTS Enabled para mejorar la seguridad (asegúrese de entender HSTS antes de habilitarlo).Haga clic en Save. Nginx Proxy Manager intentará obtener el certificado SSL. Si el registro DNS es correcto y los puertos 80/443 están abiertos, debería ser exitoso.
Una vez que el Proxy Host esté configurado y el certificado SSL obtenido (si aplica), es hora de verificar que todo funciona correctamente.
Acceda a su servicio a través del dominio:
Abra su navegador web y navegue a la URL de su dominio configurado (ej. https://app.midominio.com).
Debería ver su aplicación o servicio interno, ahora accesible de forma segura a través de Nginx Proxy Manager.
Compruebe el certificado SSL:
Si configuró SSL, asegúrese de que el navegador muestre un candado verde o un indicador de conexión segura, y que el certificado sea emitido por Let's Encrypt.
Advanced en la configuración del Proxy Host le permite añadir código Nginx personalizado.WebSockets Support esté habilitada en la pestaña Advanced del Proxy Host.Esta sección aborda problemas comunes que pueden surgir durante el despliegue y la configuración de Nginx Proxy Manager, junto con sus posibles soluciones.
Error: Permission denied (publickey) o Authentication failed
Causa: La clave SSH privada no tiene los permisos correctos, no se está utilizando la clave correcta, o la clave pública no se inyectó correctamente en la instancia.
Solución:
Asegúrese de que su clave privada (.pem) tenga permisos de solo lectura para el propietario: chmod 400 /ruta/a/su_clave_ssh.pem.
Verifique que está utilizando la clave correcta con el comando ssh -i.
Asegúrese de que el par de claves fue seleccionado durante la creación de la instancia en el orquestador. Si no fue así, deberá crear una nueva instancia y asociar la clave.
Compruebe que el grupo de seguridad de la instancia permite el tráfico SSH (puerto 22) desde su IP de origen.
Error: Connection timed out
Causa: El grupo de seguridad no permite el tráfico SSH, el firewall del sistema operativo de la instancia está bloqueando la conexión, o la IP pública no es accesible.
Solución:
Verifique las reglas de entrada del grupo de seguridad (nginx-proxy-manager-sg) para el puerto 22 (SSH). Asegúrese de que su IP pública esté permitida.
Asegúrese de que la instancia esté en estado Running en el panel del orquestador.
Si el problema persiste, intente reiniciar la instancia desde el panel del orquestador.
Contenedores de NPM no se inician (docker compose ps muestra Exited o unhealthy)
Causa: Errores en el archivo docker-compose.yml, puertos ya en uso, o problemas con la base de datos.
Solución:
Revise los logs: El primer paso es revisar los logs de los contenedores para identificar el error específico.
docker compose logs app
docker compose logs db
Puertos en uso: Asegúrese de que los puertos 80, 443 y 81 no estén siendo utilizados por otro servicio en la instancia. Puede verificar los puertos en uso con sudo netstat -tulnp. Si hay conflictos, cambie los puertos en el docker-compose.yml o detenga el otro servicio.
Contraseñas de la base de datos: Verifique que las contraseñas MYSQL_ROOT_PASSWORD y MYSQL_PASSWORD en el docker-compose.yml son correctas y coinciden con las que Nginx Proxy Manager espera. Un error común es no cambiar las contraseñas por defecto.
Volúmenes: Asegúrese de que los directorios de volumen (./data, ./letsencrypt, ./mysql) tienen los permisos adecuados para que Docker pueda escribir en ellos. Generalmente, Docker los manejará, pero si ha modificado permisos manualmente, podría ser un problema.
Reiniciar contenedores: Intente detener y reiniciar los contenedores:
docker compose down
docker compose up -d
Error: docker: command not found o docker compose: command not found
Causa: Docker o Docker Compose no se instalaron correctamente, o su usuario no está en el grupo docker.
Solución:
Vuelva a ejecutar los pasos de instalación de Docker y Docker Compose (Sección 2.2).
Asegúrese de haber añadido su usuario al grupo docker (sudo usermod -aG docker ${USER}) y de haber cerrado y vuelto a iniciar la sesión SSH.
No se puede acceder a http://su_ip_publica:81
Causa: El puerto 81 no está abierto en el grupo de seguridad, el contenedor de NPM no está funcionando, o hay un firewall en la instancia.
Solución:
Grupo de Seguridad: Verifique que el grupo de seguridad (nginx-proxy-manager-sg) tiene una regla de entrada que permite el tráfico TCP en el puerto 81 desde su IP o 0.0.0.0/0.
Estado del Contenedor: Confirme que el contenedor app de Nginx Proxy Manager está Up usando docker compose ps.
Firewall de la instancia: Si ha configurado un firewall como ufw en la instancia, asegúrese de que el puerto 81 está permitido.
Error: 502 Bad Gateway al acceder a un dominio proxy
Causa: Nginx Proxy Manager no puede conectarse al servicio backend. Esto puede deberse a una IP o puerto incorrectos del backend, el servicio backend no está funcionando, o problemas de red entre NPM y el backend.
Solución:
Verifique el servicio backend: Asegúrese de que su aplicación o servicio interno está funcionando y es accesible directamente desde la IP privada de Nginx Proxy Manager (ej. curl http://10.0.0.20:8080 desde la instancia de NPM).
IP/Puerto del Forward Host: En la configuración del Proxy Host en NPM, verifique que la Forward Hostname / IP y Forward Port son correctos y corresponden a la IP privada y puerto de su servicio backend.
Grupo de Seguridad del Backend: Asegúrese de que el grupo de seguridad de la VM de su servicio backend permite el tráfico desde la IP privada de la interfaz interna de Nginx Proxy Manager (ej. 10.0.0.10) en el puerto de su servicio.
Fallo al obtener certificado Let's Encrypt (SSL: Error)
Causa: Problemas de resolución de DNS, puertos 80/443 bloqueados, o configuración incorrecta del dominio.
Solución:
Registros DNS: Verifique que el registro A o CNAME de su dominio apunta correctamente a la IP pública de su instancia de Nginx Proxy Manager. Use herramientas como dig o nslookup para confirmarlo. Los cambios de DNS pueden tardar en propagarse.
Puertos 80/443: Asegúrese de que los puertos 80 (HTTP) y 443 (HTTPS) están abiertos en el grupo de seguridad (nginx-proxy-manager-sg) de su instancia de Nginx Proxy Manager y no están siendo bloqueados por ningún otro firewall. Let's Encrypt utiliza el puerto 80 para la validación de dominios por defecto.
Dominio en uso: Asegúrese de que el dominio que está intentando configurar no está siendo utilizado por otro servicio o servidor web que esté bloqueando el acceso de Let's Encrypt.
Logs de NPM: Revise los logs del contenedor app de Nginx Proxy Manager para ver el mensaje de error específico de Let's Encrypt.
docker compose logs app
NET::ERR_CERT_COMMON_NAME_INVALID o certificado no válido
Causa: El certificado no se emitió para el dominio correcto, o hay un problema con la cadena de confianza.
Solución:
Asegúrese de que el "Domain Names" en la configuración del Proxy Host en NPM coincide exactamente con el dominio al que está intentando acceder.
Intente borrar la caché SSL de su navegador o use un navegador diferente para descartar problemas de caché.
Si el problema persiste, intente eliminar el Proxy Host y volver a crearlo, asegurándose de que todos los pasos de SSL se sigan correctamente.
Latencia alta o respuestas lentas
Causa: Recursos insuficientes en la VM de NPM o en las VMs de backend, problemas de red, o configuración subóptima de Nginx.
Solución:
Monitoreo de recursos: Utilice herramientas de monitoreo (ej. htop, top, free -h en la VM de NPM, o las métricas del orquestador) para verificar el uso de CPU, RAM y disco. Si los recursos están al límite, considere escalar la instancia de NPM o las VMs de backend.
Latencia de red: Verifique la latencia entre Nginx Proxy Manager y sus servicios de backend (ej. ping 10.0.0.20 desde la instancia de NPM).
Optimización de Nginx: Para tráfico muy alto, puede ser necesario ajustar configuraciones avanzadas de Nginx a través de la pestaña Advanced en los Proxy Hosts. Consulte la documentación de Nginx para optimizaciones específicas.
Al seguir esta guía y utilizar la sección de resolución de problemas, debería poder desplegar y mantener Nginx Proxy Manager de manera efectiva en su entorno del orquestador.