La sortie de Remote Sync est une étape majeure pour WP STAGING. En permettant aux utilisateurs de synchroniser des sites WordPress sur différents serveurs, nous répondons à l’une des fonctionnalités les plus demandées de notre histoire.
Cependant, le transfert de volumes massifs de données — parfois supérieurs à 30 Go — introduit des défis spécifiques côté serveur. L’un des obstacles courants est le cache Varnish. Si Varnish est excellent pour accélérer ton site, il peut devenir un « goulot d’étranglement » lors de transferts de données importants.
Contents
Le problème : les limites de tampon Varnish
Lorsque Remote Sync s’exécute, il crée un fichier de Backup compressé sur le site source et le télécharge vers la destination. Si Varnish est actif sur ton serveur, il se place entre Nginx et ton application.
Varnish a souvent une limite par défaut pour la taille des objets (parfois aussi basse que 512 Mo). Lorsque le fichier de Backup WP STAGING dépasse cette limite, Varnish termine la connexion, provoquant l’échec de la synchronisation. Même si tu « exclus » le chemin dans un panneau de contrôle comme CloudPanel, Nginx continue de transmettre la requête via Varnish, ce qui entraîne le même goulot d’étranglement.
La solution : contourner Varnish via le Vhost
Pour garantir un transfert stable des fichiers de Backup volumineux, tu dois indiquer à Nginx de contourner complètement Varnish pour le répertoire de Backup WP STAGING. Cela se fait en modifiant le fichier de configuration Virtual Host (vhost) de ton site.
1. Identifier le chemin du Backup
Le répertoire par défaut où WP STAGING stocke les fichiers de synchronisation temporaires est : /wp-content/uploads/wp-staging/backups/
2. Mettre à jour ta configuration Nginx
Ajoute l’extrait suivant à ton fichier vhost Nginx. Cette directive indique au serveur d’envoyer les requêtes pour ce dossier spécifique directement vers le backend (généralement sur le port 8080), en contournant le service Varnish (généralement sur le port 6081) et en désactivant la mise en tampon.
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;
}
Pourquoi cela fonctionne
proxy_passvers 8080 : en pointant directement vers le port du backend, on contourne entièrement la couche Varnish.proxy_buffering off: cela empêche Nginx d’essayer de « sauvegarder » le fichier dans son propre cache avant de le servir, ce qui est essentiel pour les fichiers de 10 Go et plus.- Modificateur
^~: il garantit que cette règle a priorité sur les autres correspondances d’expressions régulières, assurant ainsi l’application stricte de l’exclusion.
Alternative : désactivation temporaire
Si tu n’es pas à l’aise pour modifier les fichiers vhost, tu peux désactiver temporairement Varnish sur ton serveur avant de démarrer un Remote Sync volumineux, puis le réactiver une fois la phase de « Restauration » terminée. Cependant, la méthode vhost ci-dessus est la solution recommandée de type « configure et oublie ».