El lanzamiento de Remote Sync es un hito para WP STAGING. Al permitir a los usuarios sincronizar sitios de WordPress en diferentes servidores, abordamos una de las funciones más demandadas en nuestra historia.
Sin embargo, mover cantidades masivas de datos, a veces superiores a 30 GB, introduce desafíos únicos en el lado del servidor. Un obstáculo común es Varnish Cache. Aunque Varnish es excelente para acelerar tu sitio, puede actuar como un «cuello de botella» durante transferencias de datos intensas.
Contents
El problema: límites del buffer de Varnish
Cuando se inicia Remote Sync, crea un archivo de Backup comprimido en el sitio de origen y lo descarga en el destino. Si Varnish está activo en tu servidor, se sitúa entre Nginx y tu aplicación.
Varnish suele tener un límite predeterminado para el tamaño de los objetos (a veces tan bajo como 512 MB). Cuando el archivo de Backup de WP STAGING supera este límite, Varnish termina la conexión, haciendo que la sincronización falle. Incluso si «excluyes» la ruta en un panel de control como CloudPanel, Nginx sigue enviando la solicitud a través de Varnish, lo que provoca el mismo cuello de botella.
La solución: omitir Varnish mediante Vhost
Para garantizar una transferencia estable de archivos de Backup de gran tamaño, debes indicar a Nginx que omita Varnish por completo para el directorio de Backups de WP STAGING. Esto se hace editando la configuración del Virtual Host (vhost) de tu sitio.
1. Identificar la ruta del Backup
El directorio predeterminado donde WP STAGING almacena los archivos de sincronización temporales es: /wp-content/uploads/wp-staging/backups/
2. Actualizar tu configuración de Nginx
Añade el siguiente fragmento a tu archivo vhost de Nginx. Esta directiva le indica al servidor que envíe las solicitudes para esta carpeta específica directamente al backend (normalmente en el puerto 8080), omitiendo el servicio Varnish (normalmente en el puerto 6081) y desactivando el buffering.
Nginx
# Large WP STAGING backup files - BYPASS VARNISH
location ^~ /wp-content/uploads/wp-staging/backups/ {
proxy_pass http://127.0.0.1:8080;
proxy_buffering off;
proxy_request_buffering off;
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;
add_header Cache-Control "private, no-store" always;
}
Por qué funciona esto
proxy_passal 8080: al apuntar directamente al puerto del backend, evitamos completamente la capa de Varnish.proxy_buffering off: esto evita que Nginx intente «guardar» el archivo en su propia caché antes de servirlo, lo cual es esencial para archivos de más de 10 GB.- Modificador
^~: esto garantiza que esta regla tenga prioridad sobre otras coincidencias de expresiones regulares, asegurando que la exclusión se aplique estrictamente.
Alternativa: desactivación temporal
Si no te sientes cómodo editando archivos vhost, puedes desactivar temporalmente Varnish en tu servidor antes de iniciar una sincronización Remote Sync de gran tamaño y volver a activarlo una vez que la fase de «Restore» esté completa. Sin embargo, el método vhost anterior es la solución recomendada de «configurar y olvidar».