Instalación de Nginx Proxy Manager: guía de configuración de 2 minutos
Sus servicios actualmente se encuentran en direcciones desagradables como 192.168.1.50:8080. Nginx Proxy Manager los convierte en nombres limpios como app.yourdomain.com con HTTPS gratuito, instalado con un archivo Docker Compose y administrado desde un panel web simple en lugar de archivos de configuración escritos a mano.
📑Capítulos
- Qué hace un proxy inverso: una puerta para todos sus servicios
- Lo que necesitas antes de comenzar: Docker, un dominio y puertos accesibles
- Apunte el DNS de su dominio al servidor antes de instalar nada
- Cree la carpeta y el archivo docker-compose.yml
- Inicie Nginx Proxy Manager con un comando
- Primer inicio de sesión: el paso de la cuenta de administrador todos se equivocan
- Cree su primer host proxy, campo por campo
- Obtenga el certificado HTTPS gratuito de Lets Encrypt y active Forzar SSL
📋 Descripción general y guía paso a paso
Lo que necesitas antes de comenzar
Deben existir tres cosas antes de que Nginx Proxy Manager (NPM) pueda funcionar. Primero, un servidor Linux o una PC con Docker y Docker Compose ya instalados y funcionando: NPM se ejecuta como un contenedor, no como un programa normal. En segundo lugar, un nombre de dominio cuyo DNS puedas editar, porque cada servicio tiene su propio subdominio. En tercer lugar, su enrutador o firewall en la nube debe poder reenviar los puertos 80 y 443 a esta máquina.
Primero apunte el DNS de su dominio al servidor
NPM enruta el tráfico por nombre y Lets Encrypt emite certificados solo para nombres que probablemente apunten a su máquina, por lo que el nombre debe resolverse antes de crear algo en él. En su registrador o host DNS, agregue un registro A: el Nombre es solo la palabra del subdominio (por ejemplo, app) y el Valor es la dirección IP pública de su servidor. Cada servicio tiene su propio registro y todos pueden apuntar a la misma IP; NPM separa los servicios más tarde, por nombre. Establezca un TTL corto, como 300 segundos, durante la prueba, para que los errores desaparezcan en minutos en lugar de horas.
Pruébalo antes de continuar: comprueba que el nombre se resuelva en tu IP pública desde una red externa (por ejemplo, desde tu teléfono con el Wi-Fi apagado). Solicitar un certificado contra los desperdicios de DNS rotos desperdicia los intentos de Lets Encrypt y los fallos repetidos pueden limitar su velocidad durante horas. El orden importa: DNS primero, segundo host proxy, tercero certificado.
Crear la carpeta y el archivo de redacción
Cree una carpeta para NPM en el servidor y guarde el archivo siguiente dentro de ella como docker-compose.yml. Este único archivo es la instalación completa. El nombre de la imagen es la imagen oficial de la comunidad. Los puertos 80 y 443 son las puertas públicas, el puerto 81 es el panel de administración y los dos volúmenes son donde reside toda su configuración: ./data contiene la base de datos con todos sus hosts proxy y ./letsencrypt contiene sus certificados. Si pierde esas dos carpetas, perderá toda la configuración; haga una copia de seguridad de ellas una vez que todo se esté ejecutando.
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- '80:80'
- '443:443'
- '81:81'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
La línea restart: less-stopped devuelve NPM automáticamente después de un reinicio.
Inicie el Administrador de proxy Nginx
Desde dentro de esa carpeta, ejecute el comando de inicio. Docker descarga la imagen e inicia el contenedor en segundo plano.
docker compose up -d
Compruebe que esté funcionando:
docker ps
Debería ver el contenedor listado con los puertos 80, 443 y 81. En un servidor pequeño, el primer inicio tarda uno o dos minutos mientras se crea la base de datos. Si el contenedor sigue reiniciándose, los registros muestran el motivo en lenguaje sencillo:
docker compose logs
Nueve de cada diez veces, un bucle de reinicio es un puerto que ya está utilizado por otra cosa en el host, generalmente un servidor web antiguo que aún se está ejecutando.
Primer inicio de sesión: proteja la cuenta de administrador inmediatamente
Abra el panel de administración en un navegador de su propia red:
http://your-server-ip:81
Haz esto en el primer minuto. Dependiendo de la compilación, NPM le solicita que reemplace los conocidos detalles del administrador del primer inicio de sesión con su propio correo electrónico y una contraseña segura o, en compilaciones más nuevas sin una cuenta predeterminada, la primera persona que abre la página de administración crea el administrador. De cualquier manera, la regla es la misma: configure su propia cuenta de administrador en el momento en que se inicia el contenedor, antes de crear cualquier otra cosa, y use un buzón de correo real: correos electrónicos de NPM que abordan problemas de certificados.
Cree su primer servidor proxy
En NPM, abra Hosts → Hosts proxy → Agregar host proxy y complete el formulario con una oración: "este nombre va a ese servicio interno":
Nombres de dominio: app.yourdomain.com: el nombre público exacto del paso 2, que ya debe resolverse en su servidor.
Esquema: http para la mayoría de las aplicaciones domésticas y de oficina. El esquema describe la conexión entre NPM y el servicio interno, no lo que usan los visitantes: NPM maneja el cifrado público en la puerta. Elija https aquí solo cuando la aplicación interna proporcione HTTPS.
Reenviar nombre de host/IP: la dirección interna del servicio, por ejemplo 192.168.1.50.
Puerto de reenvío: el puerto en el que realmente escucha el servicio, por ejemplo 8080, no 80 ni 443; Esas son las puertas del MNP, no las del servicio.
Active Bloquear exploits comunes y luego guarde. Pruebe inmediatamente abriendo el nombre en un navegador, idealmente desde su teléfono con Wi-Fi apagado, para probar la ruta pública real.
localhost es incorrecto (dentro del contenedor de NPM, localhost significa NPM mismo): use la IP LAN del servidor con el puerto publicado, o coloque ambos contenedores en la misma red Docker y use el nombre del contenedor.Obtenga el certificado HTTPS gratuito de Lets Encrypt
Haga esto solo después de que el host simple del Paso 6 ya funcione: HTTPS en un host roto le brinda un host roto con un certificado y el doble de lugares para buscar la falla. Abra el mismo host proxy, vaya a la pestaña SSL, configure Certificado SSL en Solicitar un nuevo certificado SSL, habilite Forzar SSL y Soporte HTTP/2, acepte los Términos de servicio de Lets Encrypt y guarde. Vuelva a cargar el sitio: el navegador ahora debería mostrar el candado en https.
Cómo funciona: Lets Encrypt demuestra que usted controla el nombre al pedirle a su servidor, a través de Internet público en el puerto 80, que muestre un token único (el desafío HTTP-01). Es por eso que el DNS que apunta a usted y un puerto 80 accesible no son negociables: si falla cualquiera de ellos, la solicitud falla y el error está en la configuración, nunca en Lets Encrypt. Forzar SSL redirige a cada visitante http a https automáticamente; sin él, la puerta no cifrada permanece abierta junto a la cifrada.
🏷️Variables y palabras clave de búsqueda de temas
🎙️ Transcripción completa: toque para ampliar
__TOK_34__
__TOK_35__
__TOK_36__
❓ Preguntas frecuentes
¿Este tutorial es 100% gratuito?
__TOK_37__
¿Pueden los principiantes seguir esta guía?
__TOK_38__
¿Dónde puedo hacer preguntas si me quedo atascado?
__TOK_39__