WordPress en Proxmox con Nginx Proxy Inverso

💡 Arquitectura propuesta:

  • Proxmox: Sistema de virtualización (host).
  • Contenedor LXC: Ejecutará WordPress (con Apache/Nginx + PHP + MySQL).
  • Proxy inverso (Nginx): En otro contenedor LXC o en el mismo host (no recomendado).

✨ Opción recomendada: Usar el script de la comunidad de Proxmox

La comunidad de Proxmox VE ofrece un script automatizado para instalar WordPress en un contenedor LXC con un solo comando. Este método es rápido, seguro y mantenido activamente.

🔗 Enlace al script:Proxmox VE Helper-Scripts – WordPress

Pasos para usar el script:

  1. Accede por SSH a tu nodo Proxmox como root.
  2. Ejecuta el siguiente comando para descargar e instalar WordPress automáticamente: bash -c «$(wget -qLO – https://github.com/community-scripts/ProxmoxVE/raw/main/wordpress-lxc.sh)»
  3. El script creará un contenedor LXC con:
    • Ubuntu 22.04
    • Apache, PHP 8.1, MariaDB
    • WordPress preinstalado y configurado
    • Firewall básico y usuario no root
  4. Anota la IP asignada al contenedor (te la muestra al final).

✅ ¡Listo! Ya tienes WordPress funcionando en un contenedor optimizado.

🛠️ Opción manual si no utilizas el script de la comunidad Proxmox: Instalación paso a paso

Si prefieres entender o personalizar cada paso, sigue esta guía manual.

1. Crear contenedor para WordPress

  • Ve a Proxmox Web UI → Clic en tu nodo → Create CT.
  • Usa una plantilla de Ubuntu 22.04 o Debian 12.
  • Asigna recursos: 512MB–1GB RAM, 8–10GB disco.
  • Configura red en modo bridged (vmbr0) con IP estática (ej: 192.168.1.100).

2. Instalar LAMP y WordPress

apt update && apt upgrade -y
apt install apache2 mysql-server php php-mysql php-curl php-gd php-mbstring php-xml php-zip php-json unzip -y

# Configurar MySQL y crear base de datos (ver guía completa)
# Descargar e instalar WordPress en /var/www/html/

🌐 Paso 2: Crear contenedor para Nginx (proxy inverso)

Crea un segundo contenedor LXC (ej: IP 192.168.1.101) e instala Nginx:

apt install nginx -y

Configura el proxy:

server {
    listen 80;
    server_name miweb.com www.miweb.com;

    location / {
        proxy_pass http://192.168.1.100;  # IP del contenedor de WordPress
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

🔒 Paso 3: SSL con Let’s Encrypt

apt install certbot python3-certbot-nginx -y
certbot --nginx -d miweb.com -d www.miweb.com

⚙️ Paso 4: Ajustes en WordPress

Agrega esto a wp-config.php para soporte detrás de proxy HTTPS:

if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
    $_SERVER['HTTPS'] = 'on';
}
define('WP_HOME','https://miweb.com');
define('WP_SITEURL','https://miweb.com');

🛡️ Recomendaciones finales

  • Usa el script de la comunidad para despliegues rápidos y seguros.
  • Aísla WordPress del tráfico directo (solo accesible vía proxy).
  • Actualiza regularmente los contenedores.
  • Considera backups automáticos con vzdump o scripts de la misma comunidad.

🌐 Recursos útiles:
Proxmox VE Helper-Scripts (GitHub) | Repositorio en GitHub

por Direpe

Deja una respuesta