bolt Valebyte VPS desde $4/mes — NVMe, despliegue en 60s.

Obtener VPS arrow_forward
eco Principiante Tutorial/Cómo hacer

Instalación de Nginx Proxy Manager

calendar_month Jul 23, 2026 schedule 20 min de lectura visibility 8 vistas
info

¿Necesitas un servidor para esta guía? Ofrecemos servidores dedicados y VPS en más de 50 países con configuración instantánea.

¿Necesitas un VPS para esta guía?

Explore otras opciones de servidores dedicados en

Instalación de Nginx Proxy Manager en un VPS: Gestión de Reverse Proxy y SSL a través de una Interfaz Web

TL;DR

En esta guía, configuraremos paso a paso Nginx Proxy Manager (NPM) en su VPS. NPM es una potente herramienta basada en Docker que simplifica la gestión de proxies inversos y certificados SSL (a través de Let's Encrypt) para sus servicios web mediante una interfaz web fácil de usar. Aprenderá a instalar Docker, desplegar NPM, configurar hosts proxy para sus aplicaciones, obtener certificados SSL automáticos y garantizar la seguridad y el mantenimiento básicos.

  • Configuración de Nginx Proxy Manager para la gestión centralizada de servidores proxy.
  • Obtención y renovación automática de certificados SSL/TLS de Let's Encrypt.
  • Gestión de múltiples dominios y subdominios a través de una interfaz web intuitiva.
  • Protección básica del servidor y copia de seguridad de la configuración de NPM.
  • Comandos actualizados para Ubuntu 24.04 LTS y Docker para el año 2026.
  • Guía para elegir la configuración de VPS adecuada para sus tareas.

¿Qué configuramos y por qué?

En el mundo moderno, donde un único servidor a menudo aloja una multitud de servicios web —desde sitios web y blogs hasta servidores API y sistemas de gestión de proyectos—, surge la necesidad de una gestión centralizada del acceso a ellos. Esta es precisamente la tarea que resuelve un servidor proxy inverso. Actúa como intermediario entre Internet y sus servicios internos, dirigiendo las solicitudes entrantes a la aplicación correcta basándose en el nombre de dominio o la ruta URL.

Nginx Proxy Manager (NPM) es una potente herramienta que simplifica significativamente la configuración y gestión de Nginx como proxy inverso. En lugar de editar manualmente complejos archivos de configuración de Nginx, NPM ofrece una interfaz web intuitiva. A través de ella, puede añadir fácilmente nuevos hosts proxy, gestionar certificados SSL/TLS (incluida la obtención automática de Let's Encrypt), configurar redirecciones, controlar el acceso y mucho más.

En resumen, al finalizar este tutorial, tendrá un Nginx Proxy Manager completamente configurado, capaz de enrutar el tráfico a sus aplicaciones internas, al tiempo que proporciona una conexión HTTPS segura para cada una de ellas. Esto le permitirá añadir fácilmente nuevos servicios a su VPS, sin preocuparse por la configuración manual de Nginx y SSL para cada uno de ellos. Ya sea GitLab, Mattermost, un servidor de Minecraft con interfaz web, un nodo de blockchain o su propio proyecto SaaS, NPM se convertirá en el nodo central para su publicación en internet.

¿Qué alternativas existen y por qué autoalojado en un VPS?

Existen varios enfoques para la gestión de proxies inversos y SSL:

  • Configuración manual de Nginx/Apache: Este es el método clásico, que requiere un conocimiento profundo de la sintaxis de los archivos de configuración. Ofrece la máxima flexibilidad, pero consume mucho tiempo y es propeno a errores.
  • Caddy: Un servidor web moderno que gestiona automáticamente los certificados SSL. Caddy es más fácil de configurar que Nginx, pero puede ser menos flexible en algunos escenarios de proxying complejos.
  • Cloud-managed Load Balancers (AWS ALB, Google Cloud Load Balancer, Azure Application Gateway): Estas soluciones ofrecen alta disponibilidad, escalabilidad y gestión integrada de SSL. Sin embargo, son significativamente más caras, le vinculan a un proveedor de nube específico y pueden ser excesivas para proyectos pequeños y medianos.
  • Otros proxies basados en Docker (Traefik, HAProxy): Traefik es especialmente popular en el ecosistema Docker gracias a su capacidad para descubrir y proxyar servicios automáticamente. Sin embargo, su configuración puede ser más compleja para los principiantes en comparación con NPM, que se centra en la facilidad de uso a través de una GUI.

La elección de una solución autoalojada, como Nginx Proxy Manager en un VPS, tiene varias ventajas:

  • Control total: Usted controla completamente la infraestructura y los datos, lo cual es fundamental para la privacidad y la seguridad.
  • Rentabilidad: El costo de un VPS suele ser significativamente menor que los pagos mensuales por Balanceadores de Carga en la nube, especialmente para proyectos con una carga moderada.
  • Flexibilidad: Puede alojar cualquier aplicación y servicio, sin las limitaciones específicas de las plataformas en la nube.
  • Universalidad: El mismo enfoque funciona en cualquier VPS de cualquier proveedor.

NPM es ideal para quienes desean la comodidad de las soluciones en la nube, pero manteniendo el control y la rentabilidad de una infraestructura autoalojada. Es una excelente opción para desarrolladores, fundadores en solitario, jugadores y criptoentusiastas que gestionan sus propios servidores.

¿Qué configuración de VPS se necesita para esta tarea?

Nginx Proxy Manager es bastante ligero por sí mismo, ya que es esencialmente una envoltura conveniente sobre Nginx y Certbot. Los requisitos principales de recursos dependerán del número de servicios proxyados, el volumen de tráfico y la complejidad de las configuraciones de Nginx. Sin embargo, para la mayoría de las tareas donde NPM actúa como un único punto de entrada para varias aplicaciones web, los requisitos serán moderados.

Requisitos mínimos (para 1-5 servicios pequeños, tráfico bajo):

  • CPU: 1 vCPU (procesador moderno, 2.5+ GHz)
  • RAM: 1 GB (para NPM, Docker y el SO base)
  • Disco: 25-30 GB SSD (para el SO, imágenes Docker y datos de NPM)
  • Red: 100 Mbps (mínimo, con tráfico ilimitado o un límite suficiente)

Plan de VPS recomendado (para 5-20 servicios, tráfico moderado, incluyendo aplicaciones ligeras):

  • CPU: 2 vCPU
  • RAM: 2-4 GB
  • Disco: 50-80 GB SSD
  • Red: 1 Gbps (con un volumen de tráfico suficiente, por ejemplo, 1-2 TB/mes)

Esta configuración garantizará un funcionamiento cómodo de NPM y de varios contenedores con sus aplicaciones. Por ejemplo, un VPS con las características indicadas será una buena elección para la mayoría de las tareas descritas en esta guía. Al elegir un proveedor, preste atención a la posibilidad de escalar rápidamente los recursos si su proyecto comienza a crecer activamente.

¿Cuándo se necesita un servidor dedicado y no un VPS?

Un servidor dedicado puede ser necesario si:

  • Planea alojar un número muy grande de servicios (cientos) con alto tráfico.
  • Sus aplicaciones requieren el máximo rendimiento de CPU o RAM que un VPS no puede proporcionar (por ejemplo, bases de datos de alta carga, servidores de juegos con muchos jugadores).
  • Necesita recursos de hardware especializados, como GPU o arreglos RAID.
  • Se requiere un aislamiento completo de otros clientes del proveedor para una máxima seguridad o para cumplir con estrictos requisitos regulatorios.

Para la mayoría de los escenarios descritos en esta guía, un VPS es más que suficiente y significativamente más rentable.

Ubicación: qué factores influyen

La elección de la ubicación del VPS influye en:

  • Latencia: Cuanto más cerca esté el servidor de su público objetivo, menor será la latencia y más rápida la carga de las páginas. Para una audiencia europea, es mejor elegir servidores en Europa; para una americana, en Norteamérica.
  • Cumplimiento legal: El alojamiento de datos en ciertas jurisdicciones puede ser un requisito para su proyecto (por ejemplo, GDPR en la UE).
  • Costo: Los precios de los VPS pueden variar ligeramente según la región.

Generalmente se recomienda elegir una ubicación que esté geográficamente más cerca del grupo principal de sus usuarios.

Preparación del servidor

Antes de instalar Nginx Proxy Manager, es necesario realizar una configuración y protección básicas de su nuevo VPS. Utilizaremos Ubuntu 24.04 LTS, que será relevante en 2026 y es un sistema operativo estable y ampliamente compatible.

1. Conexión por SSH

Conéctese a su servidor por SSH, utilizando las credenciales proporcionadas por el proveedor (normalmente el usuario root y la contraseña).


ssh root@ВАШ_IP_АДРЕС_VPS

2. Actualización del sistema

Primero, actualice todos los paquetes a las últimas versiones. Esto garantizará que tenga todos los parches de seguridad y las versiones de software más recientes.


sudo apt update -y         # Actualizar la lista de paquetes
sudo apt upgrade -y        # Actualizar los paquetes instalados
sudo apt autoremove -y     # Eliminar paquetes no utilizados

3. Creación de un nuevo usuario con permisos sudo

Trabajar como usuario root no es seguro. Cree un nuevo usuario y concédale permisos sudo.


adduser ВАШЕ_ИМЯ_ПОЛЬЗОВАТЕЛЯ          # Crear un nuevo usuario
usermod -aG sudo ВАШЕ_ИМЯ_ПОЛЬЗОВАТЕЛЯ # Añadir el usuario al grupo sudo

Cierre la sesión de root e inicie sesión con el nuevo usuario:


exit
ssh ВАШЕ_ИМЯ_ПОЛЬЗОВАТЕЛЯ@ВАШ_IP_АДРЕС_VPS

4. Configuración de la autenticación por claves SSH (recomendado)

La autenticación por claves SSH es significativamente más segura que por contraseña. Si aún no tiene un par de claves SSH, genérelas en su ordenador local:


ssh-keygen -t ed25519 -b 4096 # Crear una nueva clave SSH (localmente)

Luego, copie la clave pública a su VPS. Reemplace ВАШ_ИМЯ_ПОЛЬЗОВАТЕЛЯ y ВАШ_IP_АДРЕС_VPS con sus datos.


ssh-copy-id ВАШЕ_ИМЯ_ПОЛЬЗОВАТЕЛЯ@ВАШ_IP_АДРЕС_VPS # Copiar la clave pública

Después de esto, puede desactivar la autenticación por contraseña en el archivo /etc/ssh/sshd_config para aumentar la seguridad. Busque las líneas PasswordAuthentication yes y PermitRootLogin yes y cámbielas a no.


sudo nano /etc/ssh/sshd_config

Cambie:


#PasswordAuthentication yes
PasswordAuthentication no
PermitRootLogin no

Reinicie el servicio SSH:


sudo systemctl restart sshd

5. Configuración del firewall (UFW)

UFW (Uncomplicated Firewall) es una interfaz sencilla para gestionar iptables. Lo configuraremos para permitir solo las conexiones necesarias.


sudo apt install ufw -y              # Instalar UFW
sudo ufw allow OpenSSH               # Permitir SSH (puerto 22)
sudo ufw allow 'Nginx Full'          # Permitir HTTP (80) y HTTPS (443)
sudo ufw enable                      # Habilitar el firewall
sudo ufw status verbose              # Verificar el estado del firewall

Se le pedirá que confirme la activación de UFW, ya que esto puede interrumpir las conexiones SSH existentes. Introduzca y y pulse Enter.

6. Instalación de Fail2Ban

Fail2Ban ayuda a protegerse contra ataques de fuerza bruta, bloqueando automáticamente las direcciones IP desde las que se realizan intentos de inicio de sesión fallidos.


sudo apt install fail2ban -y         # Instalar Fail2Ban
sudo systemctl enable fail2ban       # Habilitar el inicio automático
sudo systemctl start fail2ban        # Iniciar el servicio

Por defecto, Fail2Ban ya está configurado para proteger SSH. Puede crear un archivo de configuración local para un ajuste fino:


sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local

En el archivo jail.local, puede modificar parámetros como bantime (tiempo de bloqueo), findtime (período para detectar intentos) y maxretry (número máximo de intentos). Asegúrese de que la sección [sshd] esté activa (enabled = true).


[sshd]
enabled = true
port = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s
maxretry = 3
bantime = 1h

Después de cualquier cambio, reinicie Fail2Ban:


sudo systemctl restart fail2ban

Ahora su servidor está listo para la instalación de Docker y Nginx Proxy Manager.

Instalación de Software — Paso a Paso

Nginx Proxy Manager funciona como un contenedor Docker, por lo que el primer paso será instalar Docker y Docker Compose en su VPS.

1. Instalación de Docker Engine

Elimine las versiones antiguas de Docker, si las hay, para evitar conflictos:


for pkg in docker.io docker-doc docker-compose docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin; do sudo apt remove $pkg; done

Instale los paquetes necesarios para instalar Docker a través de HTTPS:


sudo apt update -y
sudo apt install ca-certificates curl gnupg -y

Añada la clave GPG oficial de Docker:


sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

Añada el repositorio de Docker a las fuentes de APT:


echo \
  "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Actualice la lista de paquetes e instale Docker Engine (la versión es actual para 2026, por ejemplo, 26.x):


sudo apt update -y
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

Verifique que Docker esté instalado y funcionando:


sudo docker run hello-world # Ejecutar contenedor de prueba

Añada su usuario al grupo docker para evitar usar sudo con cada comando de Docker:


sudo usermod -aG docker $USER # Añadir el usuario actual al grupo docker
newgrp docker                 # Aplicar cambios para la sesión actual

Ahora puede ejecutar comandos Docker sin sudo.

2. Instalación de Nginx Proxy Manager con Docker Compose

Cree un directorio para Nginx Proxy Manager y acceda a él:


mkdir nginx-proxy-manager
cd nginx-proxy-manager

Cree el archivo docker-compose.yml. Este es el archivo de configuración principal para Docker Compose, que describe los servicios, redes y volúmenes.


nano docker-compose.yml

Pegue el siguiente contenido en el archivo. Tenga en cuenta que estamos utilizando la versión actual de NPM (por ejemplo, 2.15.0 para 2026) y una base de datos MariaDB. También mapeamos los puertos 80, 443 y 81 a la máquina host para que NPM pueda manejar el tráfico HTTP/HTTPS y proporcionar su interfaz web.


version: '3.8'
services:
  app:
    image: 'jc21/nginx-proxy-manager:2.15.0' # Versión actual de NPM para 2026
    restart: always
    ports:
      - '80:80'    # Puerto HTTP
      - '443:443'  # Puerto HTTPS
      - '81:81'    # Puerto de la interfaz web de NPM
    environment:
      DB_MYSQL_HOST: 'db'
      DB_MYSQL_PORT: 3306
      DB_MYSQL_USER: 'npm'
      DB_MYSQL_PASSWORD: 'npm_password_secure' # Reemplace con una contraseña segura
      DB_MYSQL_NAME: 'npm'
    volumes:
      - ./data:/data # Guardar datos de configuración y SSL
      - ./letsencrypt:/etc/letsencrypt # Guardar certificados Let's Encrypt
    depends_on:
      - db
  db:
    image: 'mariadb:11.3' # Versión estable actual de MariaDB para 2026
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: 'root_password_secure' # Reemplace con una contraseña segura
      MYSQL_DATABASE: 'npm'
      MYSQL_USER: 'npm'
      MYSQL_PASSWORD: 'npm_password_secure' # Debe coincidir con DB_MYSQL_PASSWORD anterior
    volumes:
      - ./data/mysql:/var/lib/mysql # Guardar datos de la base de datos

Importante: Asegúrese de reemplazar npm_password_secure y root_password_secure con sus propias contraseñas seguras. Utilice contraseñas diferentes para el usuario de NPM y el usuario root de MariaDB.

3. Inicio de Nginx Proxy Manager

Guarde el archivo (Ctrl+O, Enter, Ctrl+X) e inicie los contenedores Docker Compose:


docker compose up -d # Iniciar contenedores en segundo plano

Este comando descargará las imágenes Docker necesarias (Nginx Proxy Manager y MariaDB), creará los contenedores, configurará la red y los iniciará. El proceso puede tardar varios minutos dependiendo de la velocidad de su conexión a Internet.

4. Verificación del estado de los contenedores

Asegúrese de que ambos contenedores estén iniciados y funcionando:


docker compose ps

Debería ver el estado Up para ambos servicios (app y db).

Ahora Nginx Proxy Manager está instalado y listo para la configuración inicial a través de su interfaz web.

Configuración

Después de una instalación exitosa de Nginx Proxy Manager, es hora de configurarlo para administrar sus servicios web y certificados SSL. Todo el proceso se realizará a través de una cómoda interfaz web.

1. Primer inicio de sesión en Nginx Proxy Manager

Abra su navegador web y vaya a http://SU_DIRECCIÓN_IP_VPS:81. Verá la página de inicio de sesión de Nginx Proxy Manager.

Credenciales predeterminadas para el primer inicio de sesión:

Después de iniciar sesión, el sistema le pedirá inmediatamente que cambie estos datos. Cámbielos inmediatamente por su propio nombre de usuario y contraseña más seguros. También indique su nombre real.

2. Configuración del primer host proxy

Ahora configuremos su primer host proxy. Esto le permitirá acceder a un servicio interno (por ejemplo, un servidor web que se ejecuta en el puerto 3000 en el mismo VPS) mediante un nombre de dominio con un certificado SSL.

Supongamos que tiene el dominio example.com y desea que su servicio sea accesible a través de app.example.com. Asegúrese de que el registro DNS de tipo A para app.example.com apunte a la dirección IP de su VPS.

  1. En la interfaz web de NPM, vaya a la sección "Hosts" -> "Proxy Hosts".
  2. Haga clic en el botón "Add Proxy Host".
  3. Pestaña "Details":
    • Domain Names: Ingrese app.example.com (o su dominio/subdominio).
    • Scheme: Seleccione http (si su servicio interno no usa SSL) o https (si lo usa).
    • Forward Hostname / IP: Ingrese 127.0.0.1 (si el servicio está en el mismo VPS) o la dirección IP interna de otro servidor.
    • Forward Port: Ingrese el puerto en el que se ejecuta su servicio interno (por ejemplo, 3000).
    • Block Common Exploits: Se recomienda habilitar para seguridad adicional.
    • Websockets Support: Habilite si su servicio utiliza websockets (por ejemplo, chats, aplicaciones en tiempo real).
  4. Pestaña "SSL":
    • SSL Certificate: Seleccione "Request a new SSL Certificate".
    • Force SSL: Habilite para que todas las solicitudes HTTP se redirijan automáticamente a HTTPS.
    • Email Address for Let's Encrypt: Ingrese su dirección de correo electrónico válida.
    • I Agree to the Let's Encrypt Terms of Service: Marque esta casilla.
    • Use a DNS Challenge (optional): Si no puede abrir los puertos 80/443 para NPM o desea usar certificados wildcard, seleccione este método. Para la mayoría de los casos, el HTTP Challenge es suficiente.
  5. Haga clic en "Save".

NPM se comunicará con Let's Encrypt, obtendrá e instalará un certificado SSL para su dominio. Esto puede tardar unos segundos. Después de la emisión exitosa del certificado, el estado del host cambiará a "Online" con un icono de candado verde.

3. Verificación del funcionamiento

Ahora puede probar su servicio yendo a https://app.example.com (reemplace con su dominio) en su navegador. Debería ver el contenido de su servicio interno, así como un candado verde en la barra de direcciones, confirmando la presencia de un certificado SSL válido.

También puede usar curl para verificar:


curl -I https://app.example.com # Verificar encabezados HTTP

Debería ver los encabezados que indican la redirección (si Force SSL está habilitado) y una conexión HTTPS exitosa.

4. Configuración avanzada (opcional)

Directivas personalizadas de Nginx

Si necesita configuraciones específicas de Nginx que no están disponibles en la interfaz web, puede agregarlas en la pestaña "Advanced" al editar un host proxy. Por ejemplo, para aumentar el límite de tamaño de los archivos cargados:


client_max_body_size 100M;

Estas directivas se insertarán en el bloque server para este host proxy.

Listas de acceso

NPM permite crear listas de control de acceso para restringir el acceso a sus servicios por dirección IP o para requerir autenticación HTTP básica. Esto es útil para herramientas internas o entornos de prueba.

  1. Vaya a "Access Lists".
  2. Haga clic en "Add Access List".
  3. Configure las reglas (por ejemplo, "Allow" para IPs específicas, "Deny" para todas las demás) o añada credenciales de "Basic Auth".
  4. Aplique la lista de acceso al host proxy deseado en la pestaña "Advanced".

Después de configurar cada host proxy, NPM actualiza automáticamente la configuración de Nginx y lo recarga, asegurando la aplicación instantánea de los cambios.

Copias de seguridad y mantenimiento

Las copias de seguridad y el mantenimiento regular son aspectos críticamente importantes para cualquier sistema de producción, incluido Nginx Proxy Manager. La pérdida de la configuración o de los certificados SSL puede provocar la interrupción de todos sus servicios web.

1. Qué respaldar

Para Nginx Proxy Manager, es necesario respaldar regularmente los siguientes componentes:

  • Directorio ./data: Contiene toda la configuración de NPM (la base de datos SQLite, si la usa, o los datos para la conexión a una base de datos externa) y los datos de Let's Encrypt. Esto es lo más importante.
  • Directorio ./letsencrypt: Contiene todos sus certificados SSL. Aunque pueden ser reemitidos, tener una copia de seguridad acelera la recuperación.
  • Archivo docker-compose.yml: Contiene la descripción de sus servicios Docker y su configuración.

En nuestro caso, dado que usamos MariaDB en un contenedor separado, los datos de la base de datos se almacenan en ./data/mysql. Todos los datos críticamente importantes ya están cubiertos por la copia de seguridad del directorio ./data.

2. Script simple de copia de seguridad automática

Crearemos un script simple que creará un archivo con los datos necesarios y lo guardará.

Cree el archivo backup_npm.sh en el directorio de inicio de su usuario:


nano ~/backup_npm.sh

Pegue el siguiente contenido. Este script detendrá los contenedores de NPM (para evitar la corrupción de la base de datos durante la copia de seguridad), creará un archivo y luego los iniciará de nuevo.


#!/bin/bash

# Директория, где находится ваш docker-compose.yml для NPM
NPM_DIR="/home/$USER/nginx-proxy-manager"
BACKUP_DIR="/var/backups/npm" # Директория для хранения бэкапов
DATE=$(date +%Y%m%d%H%M%S)
BACKUP_FILE="${BACKUP_DIR}/npm_backup_${DATE}.tar.gz"

echo "Starting Nginx Proxy Manager backup at ${DATE}..."

# Создаем директорию для бэкапов, если ее нет
sudo mkdir -p ${BACKUP_DIR}
sudo chown $USER:$USER ${BACKUP_DIR} # Убедитесь, что у пользователя есть права на запись

# Переходим в директорию NPM
cd ${NPM_DIR} || { echo "Error: NPM directory not found!"; exit 1; }

# Останавливаем NPM сервисы для консистентного бэкапа
echo "Stopping NPM services..."
docker compose stop

# Создаем архив с данными NPM и letsencrypt
echo "Creating backup archive..."
tar -czf ${BACKUP_FILE} data docker-compose.yml

# Запускаем NPM сервисы обратно
echo "Starting NPM services..."
docker compose start

# Удаляем старые бэкапы (например, старше 7 дней)
echo "Cleaning up old backups..."
find ${BACKUP_DIR} -type f -name "npm_backup_*.tar.gz" -mtime +7 -delete

echo "Backup complete: ${BACKUP_FILE}"

Haga el script ejecutable:


chmod +x ~/backup_npm.sh

Pruebe el script ejecutándolo manualmente:


~/backup_npm.sh

Verifique que el archivo de copia de seguridad se haya creado en /var/backups/npm/.

3. Configuración de Cron para copias de seguridad automáticas

Agregue el script al programador de tareas Cron para que se ejecute automáticamente (por ejemplo, diariamente a las 3:00 de la madrugada).


crontab -e

Agregue la siguiente línea al final del archivo. Ejecutará el script todos los días a las 3:00 AM.


0 3 * * * /home/ВАШЕ_ИМЯ_ПОЛЬЗОВАТЕЛЯ/backup_npm.sh >> /var/log/npm_backup.log 2>&1

Reemplace ВАШЕ_ИМЯ_ПОЛЬЗОВАТЕЛЯ con el nombre de su usuario.

4. Dónde almacenar las copias de seguridad (almacenamiento externo)

Almacenar las copias de seguridad en el mismo servidor que los datos originales es arriesgado. Si el servidor falla, perderá tanto los datos como las copias de seguridad. Se recomienda utilizar almacenamiento externo:

  • Almacenamiento de objetos en la nube (compatible con S3): AWS S3, Backblaze B2, DigitalOcean Spaces, MinIO. Estas son soluciones fiables y escalables. Puede usar utilidades como rclone para sincronizar automáticamente las copias de seguridad locales con la nube.
  • VPS separado: Puede configurar un segundo VPS pequeño y usar rsync o scp para copiar las copias de seguridad allí.
  • NAS/PC local: Si su VPS tiene una IP pública, puede configurar un túnel VPN y copiar las copias de seguridad a un NAS o PC doméstico.

Ejemplo de integración de rclone en el script de copia de seguridad (después de la línea echo "Backup complete: ${BACKUP_FILE}"):


# Sincronización con almacenamiento compatible con S3 (se asume que rclone ya está configurado)
echo "Syncing backups to remote storage..."
rclone copy ${BACKUP_DIR} remote:npm-backups --min-age 1d

5. Actualizaciones: rolling vs maintenance window

Las actualizaciones regulares de las imágenes Docker de Nginx Proxy Manager y MariaDB son importantes para obtener nuevas funciones, correcciones de errores y parches de seguridad.

  • Rolling updates: Para NPM no es exactamente "rolling", ya que es una única instancia. Pero puede actualizarlo en cualquier momento.
  • Maintenance window: Se recomienda programar las actualizaciones para el momento de menor actividad de los usuarios, ya que la actualización implicará un breve tiempo de inactividad (desde unos segundos hasta un minuto) mientras el contenedor antiguo se detiene y se inicia el nuevo.

Proceso de actualización:

Vaya al directorio nginx-proxy-manager:


cd ~/nginx-proxy-manager

Detenga y elimine los contenedores antiguos y descargue las nuevas imágenes:


docker compose down             # Останавливает и удаляет контейнеры
docker compose pull             # Скачивает последние версии образов (указанные в docker-compose.yml)
docker compose up -d            # Запускает новые контейнеры

Si desea actualizar solo un servicio (por ejemplo, NPM, pero no MariaDB), puede especificar su nombre:


docker compose pull app
docker compose up -d app

¡Siempre haga una copia de seguridad antes de realizar actualizaciones importantes o cambios de configuración!

Solución de problemas + Preguntas frecuentes

Durante el proceso de configuración de Nginx Proxy Manager, pueden surgir varios problemas. Aquí abordaremos los más comunes y ofreceremos recomendaciones para su solución.

¿Qué hacer si la interfaz web de Nginx Proxy Manager no está disponible en el puerto 81?

Primero, asegúrese de que el contenedor de NPM esté en ejecución. Conéctese por SSH a su VPS y ejecute el comando docker compose ps en el directorio nginx-proxy-manager. Si el estado del contenedor app no es Up, revise los registros con el comando docker compose logs app en busca de errores. Asegúrese de que el puerto 81 no esté ocupado por otra aplicación en su VPS y de que UFW permita las conexiones entrantes a este puerto (sudo ufw status verbose).

¿Por qué no se emite un certificado SSL de Let's Encrypt?

Las causas más comunes:

  • Registros DNS incorrectos: Asegúrese de que el registro DNS de tipo A para su dominio (por ejemplo, app.example.com) apunte a la dirección IP pública de su VPS. Verifíquelo con dig app.example.com.
  • Cortafuegos: Los puertos 80 y 443 deben estar abiertos en su VPS (UFW debe permitir 'Nginx Full'). Let's Encrypt utiliza estos puertos para la verificación de la propiedad del dominio (desafío HTTP-01).
  • NPM no puede comunicarse con Let's Encrypt: Asegúrese de que su VPS tenga acceso a internet y que la resolución DNS funcione correctamente.
  • Límite de Let's Encrypt excedido: Si ha realizado muchos intentos fallidos, es posible que haya excedido temporalmente los límites de Let's Encrypt. Espere unas horas e inténtelo de nuevo.
  • Correo electrónico incorrecto: Asegúrese de haber especificado una dirección de correo electrónico válida en la configuración SSL.

Mi host proxy está configurado, pero el servicio no se abre o muestra un error 502 Bad Gateway.

El error 502 generalmente significa que Nginx Proxy Manager no pudo conectarse a su servicio interno. Verifique lo siguiente:

  • Forward Hostname / IP y Forward Port: Asegúrese de que estos parámetros en la configuración del host proxy estén especificados correctamente. Si el servicio se encuentra en el mismo VPS, use 127.0.0.1 o el nombre del contenedor Docker (si están en la misma red Docker).
  • Disponibilidad del servicio interno: Asegúrese de que su servicio interno esté realmente en ejecución y escuchando en el puerto especificado. Puede verificar esto desde el VPS usando curl http://127.0.0.1:PUERTO_DEL_SERVICIO.
  • Cortafuegos en el VPS: Si su servicio interno se ejecuta en un contenedor Docker separado o en otro puerto, asegúrese de que su puerto sea accesible para NPM (normalmente Docker gestiona su red interna, pero vale la pena verificarlo).

¿Cómo actualizar Nginx Proxy Manager?

Para actualizar NPM a la última versión especificada en su docker-compose.yml, ejecute los siguientes comandos en el directorio nginx-proxy-manager:


docker compose down
docker compose pull
docker compose up -d

¡Siempre se recomienda hacer una copia de seguridad antes de actualizar!

¿Qué configuración mínima de VPS es adecuada?

Para una instalación básica de Nginx Proxy Manager y algunos servicios ligeros (por ejemplo, un sitio web pequeño, Mattermost para 5-10 personas, un nodo de Bitcoin), un VPS con 1 vCPU, 1 GB de RAM y 25-30 GB de SSD será suficiente. Esto bastará para el funcionamiento estable de NPM y para manejar un tráfico moderado. Sin embargo, si planea ejecutar aplicaciones más exigentes en recursos o una gran cantidad de servicios, es mejor considerar una configuración con 2 vCPU y 2-4 GB de RAM.

¿Qué elegir: VPS o dedicado para esta tarea?

Para la mayoría de los usuarios y escenarios descritos en esta guía (desarrollador, fundador individual, jugador, criptoentusiasta), un VPS es la opción óptima. Ofrece suficiente rendimiento, flexibilidad y un costo significativamente menor en comparación con un servidor dedicado. Un servidor dedicado solo debe considerarse en casos de carga muy alta (cientos de miles de solicitudes por segundo, docenas de servicios de alta carga), necesidad de hardware especializado (GPU, gran volumen de RAM o disco, arreglos RAID) o requisitos estrictos de aislamiento total.

¿Cómo configurar la redirección de HTTP a HTTPS?

Nginx Proxy Manager lo hace automáticamente. Al crear o editar un host proxy en la pestaña "SSL", simplemente active la opción "Force SSL". NPM añadirá las directivas Nginx necesarias para redirigir todo el tráfico HTTP a HTTPS.

Conclusiones y próximos pasos

¡Felicidades! Ha instalado y configurado con éxito Nginx Proxy Manager en su VPS, y también ha aprendido a gestionar proxies inversos y certificados SSL a través de una cómoda interfaz web. Ahora su servidor está listo para desplegar y publicar varios servicios web, ya sean proyectos personales, herramientas de equipo o aplicaciones comerciales, con confianza en la seguridad y facilidad de gestión.

Aquí hay algunos pasos que puede seguir para aprovechar al máximo su nuevo Nginx Proxy Manager:

  1. Despliegue de nuevos servicios: Ahora que tiene un proxy centralizado, puede añadir fácilmente nuevos contenedores Docker con sus aplicaciones (GitLab, Mattermost, WordPress, Nextcloud, etc.) y publicarlos rápidamente en internet, configurando los hosts proxy en NPM.
  2. Monitorización del servidor: Instale herramientas de monitorización como Prometheus + Grafana, Netdata o Zabbix para rastrear el estado de su VPS, el uso de recursos por parte de los contenedores Docker y el rendimiento de Nginx Proxy Manager.
  3. Seguridad adicional: Considere usar Cloudflare (o un CDN/WAF similar) delante de Nginx Proxy Manager para una protección adicional contra ataques DDoS, almacenamiento en caché de contenido y mejora del rendimiento. También explore la posibilidad de usar listas de control de acceso más complejas o la integración con sistemas de inicio de sesión único (SSO).

¿Te fue útil esta guía?

Tus comentarios nos ayudan a mejorar nuestras guías.

Compartir esta publicación:

Envía esta guía a alguien a quien pueda resultarle útil.

Telegram VKVK WhatsApp Facebook LinkedIn XX

Instalación de Nginx Proxy Manager en VPS: gestión de reverse proxy y SSL a través
support_agent
Valebyte Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.