[{"data":1,"prerenderedAt":204},["ShallowReactive",2],{"seo-verification":3,"blog-desplegar-con-nginx-proxy-manager-es":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-desplegar-con-nginx-proxy-manager-es",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":27,"featuredImage":29,"bgImage":30,"posterImage":31,"relatedSolution":29,"intro":32,"sections":33,"ctaTitle":147,"ctaBody":148,"ctaButton":149,"ctaUrl":150,"relatedPosts":151},37,"desplegar-con-nginx-proxy-manager",{"fr":12,"en":13,"ar":14,"es":10},"deployer-avec-nginx-proxy-manager","deploy-your-applications-with-nginx-proxy-manager-on-a-vps","انشر-تطبيقاتك-باستخدام-nginx-proxy-manager-على-خادم-vps","Desplegar sus aplicaciones con Nginx Proxy Manager en un VPS","Gestione dominios, SSL y reverse proxy de varios servicios en un VPS con Nginx Proxy Manager: instalación, redes Docker, errores 502 y ajustes avanzados.",9,2,false,"2026-05-14T00:00:00+00:00","2026-09-07T11:26:10+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":25},3,"Despliegue","deploiement","bg-success\u002F10 text-success",[28],{"id":23,"name":24,"slug":25,"color":26,"icon":25},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fdeployer-avec-nginx-proxy-manager-poster.svg","Nginx Proxy Manager (NPM) coloca una interfaz web clara por encima de Nginx para gestionar reverse proxies, dominios y certificados SSL sin editar un solo archivo de configuración. En cuanto aloja más de una aplicación en un VPS —una API, un Gitea, un Portainer, un n8n— necesita una capa de enrutamiento HTTP fiable. Esta guía le lleva desde la instalación con Docker hasta los ajustes avanzados: redes aisladas, listas de acceso, wildcard SSL y resolución de los errores más frecuentes.",[34,38,49,52,86,89,93,96,104,144],{"type":35,"title":36,"body":37},"h2","Por qué un reverse proxy en su VPS","Un VPS expone una sola dirección IP pública. Detrás de esa IP puede ejecutar cinco, diez o veinte servicios en puertos internos distintos. Sin reverse proxy, exponer cada servicio en un puerto público implica abrir esos puertos en el firewall, gestionar manualmente los certificados TLS de cada uno e informar de ello a cada usuario. Un reverse proxy resuelve estos tres problemas de una sola vez: recibe todo el tráfico en los puertos 80 y 443, identifica el dominio solicitado y redirige la petición al contenedor interno correcto. Nginx Proxy Manager añade una capa de interfaz gráfica a esta mecánica: ningún archivo de configuración que escribir, ningún reload manual, y los certificados Let's Encrypt se gestionan con unos pocos clics. Resulta especialmente adecuado para las agencias que alojan varias aplicaciones de clientes en el mismo servidor, o para los desarrolladores independientes que ejecutan varios proyectos en paralelo.",{"type":39,"title":40,"items":41},"ul","NPM frente a la configuración manual de Nginx: 7 ventajas concretas",[42,43,44,45,46,47,48],"Ningún archivo de configuración: cada proxy host se crea desde la interfaz web, sin sintaxis Nginx que memorizar.","Certificados Let's Encrypt automáticos: NPM solicita, instala y renueva los certificados sin intervención. Wildcard posible mediante DNS challenge.","Gestión centralizada: todos sus dominios, subdominios y redirecciones en una sola pantalla, en lugar de una decena de archivos en `\u002Fetc\u002Fnginx\u002Fsites-enabled\u002F`.","Listas de acceso (Access Lists) integradas: proteger un servicio por IP o por contraseña sin tocar la configuración de cada aplicación.","Logs por host consultables en la interfaz: identificar un error 502 o un abuso sin entrar por ssh en el contenedor.","Redirecciones HTTP→HTTPS y páginas 404 personalizadas configurables de forma visual.","Descubrimiento por nombre de contenedor Docker: apuntar a `portainer:9000` en lugar de a una IP interna inestable que cambia al reiniciar.",{"type":35,"title":50,"body":51},"Requisitos previos con cifras antes de instalar NPM","NPM solo enruta tráfico, por lo que es ligero. Un VPS con 1 GB de RAM y 1 vCPU basta si NPM es el único servicio destacable. Si además aloja detrás de él las aplicaciones, dimensione según la suma de sus necesidades. Prevea 15 GB de disco SSD (certificados, base SQLite, logs). Software necesario: Docker 24+ y el plugin Compose v2 (`docker compose`, no el antiguo comando `docker-compose`). Red: los puertos 80 y 443 deben estar libres en el VPS, ya que NPM es su único ocupante. El puerto 81 queda reservado a la interfaz de administración; nunca debe exponerse directamente a Internet. DNS: apunte sus registros A a la IP del VPS antes de solicitar los certificados. Para un wildcard `*.votre-domaine.com`, hace falta una clave API de su proveedor DNS (Cloudflare, OVH, etc.).",{"type":53,"title":54,"steps":55},"steps","Instalación y primera configuración de Nginx Proxy Manager",[56,59,62,65,68,71,74,77,80,83],{"title":57,"body":58},"Instalar Docker en el VPS","En un servidor Debian\u002FUbuntu: `curl -fsSL https:\u002F\u002Fget.docker.com | sh`. Compruebe después: `docker --version` y `docker compose version`. Si el plugin Compose no está presente, instale el paquete `docker-compose-plugin` con apt.",{"title":60,"body":61},"Crear la carpeta de trabajo y el archivo Compose","Cree `\u002Fopt\u002Fnpm` en el VPS. Dentro de esa carpeta, cree un archivo `docker-compose.yml`. Declare en él el servicio NPM con la imagen `jc21\u002Fnginx-proxy-manager:latest`, mapee los puertos `80:80`, `443:443` y `81:81`, y defina dos volúmenes: `.\u002Fdata:\u002Fdata` y `.\u002Fletsencrypt:\u002Fetc\u002Fletsencrypt`.",{"title":63,"body":64},"Arrancar el contenedor","Desde `\u002Fopt\u002Fnpm`, ejecute `docker compose up -d`. Compruebe que el contenedor está en marcha: `docker compose ps`. La interfaz de administración queda accesible en `http:\u002F\u002FIP_DU_VPS:81` en los treinta segundos siguientes.",{"title":66,"body":67},"Primera conexión y protección de la cuenta admin","Conéctese con las credenciales por defecto: correo `admin@example.com`, contraseña `changeme`. NPM le invita de inmediato a cambiar estos dos valores. Hágalo antes de cualquier otra acción: esta cuenta da acceso total a su infraestructura de enrutamiento.",{"title":69,"body":70},"Crear una red Docker compartida","Para que NPM pueda alcanzar sus contenedores de aplicación por su nombre, deben compartir la misma red Docker. Cree una red externa: `docker network create proxy`. En el `docker-compose.yml` de NPM, declare esa red como externa. Haga lo mismo en el Compose de cada aplicación que quiera proxificar.",{"title":72,"body":73},"Añadir un primer Proxy Host","En la interfaz: Proxy Hosts → Add Proxy Host. Indique el dominio (p. ej. `app.votre-domaine.com`), el `Forward Hostname` (nombre del contenedor o IP interna) y el puerto de la aplicación. Marque «Block Common Exploits». Si la aplicación usa WebSockets, active «Websockets Support».",{"title":75,"body":76},"Activar el SSL de Let's Encrypt","En la pestaña SSL del Proxy Host, elija «Request a new SSL Certificate», acepte las condiciones de Let's Encrypt y marque «Force SSL». NPM contacta con los servidores ACME, valida el dominio mediante HTTP-01 e instala el certificado. Su servicio queda en HTTPS en unos segundos. La renovación es automática.",{"title":78,"body":79},"Proteger la interfaz de administración (puerto 81)","Cierre el puerto 81 en su firewall (`ufw deny 81`). Cree después un Proxy Host dedicado —por ejemplo `npm.votre-domaine.com` → `localhost:81`— con SSL y una Access List restringida a su IP de gestión. Así accede a la interfaz por HTTPS sin exponer el puerto 81 al resto del mundo.",{"title":81,"body":82},"Certificado wildcard mediante DNS challenge","Para cubrir todos sus subdominios con un solo certificado, use el DNS challenge. En la pestaña SSL, seleccione «Use a DNS Challenge», elija su proveedor (Cloudflare, OVH…) e indique la clave API. NPM crea un registro TXT en su zona DNS, valida la propiedad del dominio y obtiene el certificado `*.votre-domaine.com`.",{"title":84,"body":85},"Probar la cadena completa","Desde un terminal: `curl -I https:\u002F\u002Fapp.votre-domaine.com`. Espere un código `200` o el código de su aplicación. Compruebe también la redirección HTTP: `curl -I http:\u002F\u002Fapp.votre-domaine.com` debe devolver un `301` hacia la versión HTTPS.",{"type":35,"title":87,"body":88},"Configuración avanzada","NPM expone en su interfaz varias funcionalidades que van más allá del simple reverse proxy. Las **Access Lists** permiten restringir el acceso a un host por rango de IP, por credenciales HTTP Basic Auth, o por una combinación de ambos, algo útil para proteger un backoffice sin añadir autenticación en la propia aplicación. Los **Streams** gestionan el proxy TCP\u002FUDP para los protocolos que no son HTTP (MySQL remoto, servidor de juegos, MQTT…). La sección **Redirecciones** crea reglas permanentes (301) o temporales (302) de un dominio o de una ruta hacia otra URL, sin que haga falta un servicio detrás. Las **pestañas Avanzado** de cada proxy host permiten inyectar configuración Nginx en bruto cuando la interfaz no cubre un caso particular (cabeceras de seguridad personalizadas, `proxy_read_timeout` ampliado para las peticiones largas de subida, etc.).",{"type":90,"title":91,"body":92},"tip","Endurecimiento: rate limiting en la pestaña Avanzado","NPM no expone ningún control de rate limiting en su interfaz básica, pero puede inyectar la directiva Nginx en la pestaña «Advanced» del proxy host correspondiente. Declare una zona compartida en la configuración personalizada: `limit_req_zone $binary_remote_addr zone=api:10m rate=30r\u002Fm;` y luego aplíquela: `limit_req zone=api burst=10 nodelay;`. Esto limita cada IP a 30 peticiones por minuto con un burst de 10, lo que basta para recortar el scraping o los intentos de fuerza bruta en un formulario de inicio de sesión sin bloquear a los usuarios legítimos.",{"type":35,"title":94,"body":95},"Resolución de los errores más frecuentes","Estos son los cinco problemas más frecuentes que aparecen tras una instalación de NPM, con su diagnóstico directo.",{"type":39,"title":97,"items":98},"Errores frecuentes y sus causas",[99,100,101,102,103],"**502 Bad Gateway**: NPM no alcanza su contenedor. Compruebe primero que el contenedor de la aplicación está en marcha (`docker ps`) y que está en la misma red Docker que NPM (`docker network inspect proxy`). Compruebe después que el `Forward Hostname` corresponde exactamente al nombre del servicio declarado en el Compose de la aplicación.","**Certificado SSL pendiente o error ACME**: Let's Encrypt debe poder alcanzar su servidor en el puerto 80 a través del dominio declarado. Compruebe que el registro DNS A apunta a la IP correcta, que el puerto 80 no está bloqueado por el firewall del VPS ni por un filtro de red aguas arriba, y que el dominio se resuelve desde el exterior (`dig app.votre-domaine.com`).","**Contenedor inaccesible mediante el nombre DNS de Docker**: si apunta a `monapp:3000` y obtiene un error de resolución, el contenedor `monapp` no está en la misma red que NPM. Añada la red `proxy` en el Compose de la aplicación y vuelva a crear los contenedores (`docker compose up -d --force-recreate`).","**Redirección infinita HTTP→HTTPS**: ocurre cuando la propia aplicación efectúa su propia redirección HTTPS además de la de NPM. Añada en la pestaña Avanzado: `proxy_set_header X-Forwarded-Proto $scheme;` para que la aplicación conozca el protocolo real.","**Interfaz de administración inaccesible tras un reinicio**: asegúrese de que el servicio NPM tiene la directiva `restart: unless-stopped` en su Compose. Sin ella, Docker no volverá a arrancar el contenedor tras un reboot del VPS.",{"type":105,"title":106,"headers":107,"rows":111},"comparison","Nginx Proxy Manager frente a Traefik",[108,109,110],"Criterio","Nginx Proxy Manager","Traefik",[112,116,120,124,128,132,136,140],[113,114,115],"Configuración","Interfaz web visual, ningún archivo que editar","Archivos YAML y labels de Docker",[117,118,119],"Curva de aprendizaje","Baja, accesible sin experiencia en Nginx","Más pronunciada, orientada a DevOps",[121,122,123],"SSL Let's Encrypt","Automático desde la interfaz, wildcard posible","Automático mediante configuración",[125,126,127],"Descubrimiento de servicios","Manual (nombre de contenedor o IP:puerto)","Automático mediante labels de Docker",[129,130,131],"Ideal para","Unos pocos servicios gestionados manualmente, setup claro","Entornos dinámicos y numerosos contenedores",[133,134,135],"Consumo de RAM","Muy bajo","Bajo",[137,138,139],"Logs por host","Consultables en la interfaz","Mediante un stack de logs externo",[141,142,143],"Gestión de accesos","Access Lists integradas (IP, contraseña)","Middlewares que hay que configurar",{"type":35,"title":145,"body":146},"Cuándo plantearse Traefik o Caddy","NPM encaja perfectamente para un parque de servicios estable cuyo número se mantiene bajo control. En cuanto gestiona despliegues dinámicos —contenedores que aparecen y desaparecen de forma automática, como en un entorno Kubernetes o con pipelines CI\u002FCD que crean previews sobre la marcha—, Traefik resulta más adecuado: su descubrimiento de servicios mediante los labels de Docker evita volver a la interfaz por cada nuevo contenedor. Caddy es una buena alternativa si busca la sencillez de la configuración por archivo con certificados automáticos, sin interfaz web. En todos los casos, NPM puede convivir con Traefik o Caddy en el mismo VPS, gestionando cada uno una parte del tráfico, siempre que no ponga dos proxies en los mismos puertos 80 y 443. Si su infraestructura crece hasta el punto de gestionar varias decenas de servicios con equipos distintos, una malla de servicios (Consul Connect, Linkerd) sustituye con ventaja al apilamiento de proxies.","Centralice sus dominios con Nginx Proxy Manager","Un VPS Cloud ServOrbit listo con Docker le permite instalar Nginx Proxy Manager como punto de entrada HTTPS único y enrutar todos sus servicios con un SSL automático.","Elegir mi VPS Cloud","\u002Fvps-cloud",[152,172,187],{"id":153,"slug":154,"slugs":155,"title":159,"excerpt":160,"readTime":161,"views":162,"isPinned":19,"publishedAt":163,"updatedAt":164,"category":165,"categories":166,"featuredImage":29,"bgImage":30,"posterImage":168,"relatedSolution":169},33,"desplegar-aplicaciones-con-caprover-en-un-vps",{"fr":156,"en":157,"ar":158,"es":154},"deployer-avec-caprover","deploy-your-applications-with-caprover-on-a-vps","انشر-تطبيقاتك-باستخدام-caprover-على-خادم-vps","Desplegar sus aplicaciones con CapRover en un VPS","Guía completa de CapRover: instalación, captain-definition, CI\u002FCD con GitHub Actions, clúster multinodo, copias de seguridad y resolución de problemas.",10,1,"2026-05-18T00:00:00+00:00","2026-09-09T21:41:06+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":25},[167],{"id":23,"name":24,"slug":25,"color":26,"icon":25},"\u002Fblog\u002Fcovers\u002Fdeployer-avec-caprover-poster.svg",{"categorySlug":170,"appSlug":171},"despliegue-de-aplicaciones-devops","caprover",{"id":173,"slug":174,"slugs":175,"title":179,"excerpt":180,"readTime":23,"views":181,"isPinned":19,"publishedAt":182,"updatedAt":21,"category":183,"categories":184,"featuredImage":29,"bgImage":30,"posterImage":186,"relatedSolution":29},34,"desplegar-aplicaciones-con-dokku-en-un-vps",{"fr":176,"en":177,"ar":178,"es":174},"deployer-avec-dokku","deploy-your-applications-with-dokku-on-a-vps","انشر-تطبيقاتك-باستخدام-dokku-على-خادم-vps","Desplegar sus aplicaciones con Dokku en un VPS","Despliegue sus apps con Dokku, el PaaS más pequeño del mercado: git push, buildpacks de Heroku y SSL automático en un VPS ligero.",0,"2026-05-17T00:00:00+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":25},[185],{"id":23,"name":24,"slug":25,"color":26,"icon":25},"\u002Fblog\u002Fcovers\u002Fdeployer-avec-dokku-poster.svg",{"id":188,"slug":189,"slugs":190,"title":194,"excerpt":195,"readTime":196,"views":181,"isPinned":19,"publishedAt":197,"updatedAt":21,"category":198,"categories":199,"featuredImage":29,"bgImage":30,"posterImage":201,"relatedSolution":202},35,"desplegar-aplicaciones-con-portainer-en-un-vps",{"fr":191,"en":192,"ar":193,"es":189},"deployer-avec-portainer","deploy-your-applications-with-portainer-on-a-vps","انشر-تطبيقاتك-باستخدام-portainer-على-خادم-vps","Desplegar sus aplicaciones con Portainer en un VPS","Pilote Docker visualmente con Portainer en su VPS: contenedores, stacks, volúmenes y redes gestionados desde una interfaz web clara.",4,"2026-05-16T00:00:00+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":25},[200],{"id":23,"name":24,"slug":25,"color":26,"icon":25},"\u002Fblog\u002Fcovers\u002Fdeployer-avec-portainer-poster.svg",{"categorySlug":170,"appSlug":203},"portainer",1789665015722]