Omijanie Varnish dla dużych Backupów Remote Sync WP STAGING (poprawka vhosta Nginx)

Wydanie Remote Sync to kamień milowy dla WP STAGING. Pozwalając użytkownikom synchronizować witryny WordPress między różnymi serwerami, zajmujemy się jedną z najbardziej oczekiwanych funkcji w naszej historii.

Jednak przenoszenie ogromnych ilości danych — czasem przekraczających 30 GB — wiąże się z unikalnymi wyzwaniami po stronie serwera. Jedną z częstych przeszkód jest cache Varnish. Varnish świetnie przyspiesza witrynę, ale podczas dużych transferów danych może być wąskim gardłem.

Problem: limity bufora Varnish

Gdy Remote Sync startuje, tworzy skompresowany plik Backupu na witrynie źródłowej i pobiera go na witrynę docelową. Jeśli na twoim serwerze działa Varnish, jest on warstwą pośrednią między Nginx a twoją aplikacją.

Varnish często ma domyślny limit rozmiaru obiektów (czasem zaledwie 512 MB). Gdy plik Backupu WP STAGING przekracza ten limit, Varnish zrywa połączenie i synchronizacja kończy się niepowodzeniem. Nawet jeśli „wykluczysz” ścieżkę w panelu, np. CloudPanel, Nginx i tak przekazuje żądanie przez Varnish — i bottleneck pozostaje ten sam.

Rozwiązanie: omijanie Varnish przez vhost

Aby zapewnić stabilny transfer dużych plików Backupu, musisz powiedzieć Nginxowi, by w całości omijał Varnish dla katalogu Backupu WP STAGING. Robi się to przez edycję konfiguracji Virtual Host (vhost) twojej witryny.

1. Ustal ścieżkę Backupu

Domyślny katalog, w którym WP STAGING przechowuje tymczasowe pliki synchronizacji, to: /wp-content/uploads/wp-staging/backups/.

2. Zaktualizuj konfigurację Nginx

Dodaj poniższy snippet do pliku vhosta Nginx. Ta dyrektywa mówi serwerowi, by żądania dla tego konkretnego folderu wysyłać bezpośrednio do backendu (zazwyczaj na porcie 8080), pomijając usługę Varnish (zazwyczaj na porcie 6081) i wyłączając buforowanie.

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;
}

Dlaczego to działa

  • proxy_pass na 8080: kierując bezpośrednio na port backendu, omijamy całkowicie warstwę Varnish.
  • proxy_buffering off: zapobiega temu, by Nginx próbował „zapisać” plik w swoim cache przed jego zwróceniem — co jest kluczowe dla plików powyżej 10 GB.
  • Modyfikator ^~: gwarantuje, że ta reguła ma pierwszeństwo nad innymi dopasowaniami regex, dzięki czemu wykluczenie jest egzekwowane bezwzględnie.

Alternatywa: tymczasowe wyłączenie

Jeśli nie czujesz się komfortowo z edytowaniem plików vhost, możesz tymczasowo wyłączyć Varnish na serwerze przed rozpoczęciem dużego Remote Sync i włączyć go ponownie po zakończeniu fazy „Restore”. Powyższa metoda z vhost to jednak zalecane rozwiązanie typu „ustaw i zapomnij”.

Updated on 23 maja, 2026

Alaa Salama

Autor: Alaa Salama

Od ponad dekady pracuję w obszarze wsparcia technicznego, ponieważ naprawdę cenię ludzki wymiar technologii. Niezależnie od tego, czy rozwiązuję złożony problem związany z WordPressem, czy tworzę niestandardowe wtyczki i fragmenty kodu usprawniające przepływy pracy, moim celem jest zawsze ograniczanie tarć i pomaganie ludziom w mądrzejszej pracy. Dla mnie nie ma nic bardziej satysfakcjonującego niż widok rozwiązania, które stworzyłem i które poprawia komuś dzień.

Kiedy jestem offline, zazwyczaj i tak nadal zaglądam „pod maskę” czegoś. Pasjonuję się optymalizacją serwerów i elektroniką DIY, a wolny czas często poświęcam projektom smart home i naprawom sprzętu. Szczególnie cenię czas spędzany w moim domowym warsztacie z dziećmi. Wspólnie zajmujemy się wszystkim, od domowych napraw po kreatywne projekty, rozwijając zamiłowanie do budowania rzeczy, które przetrwają próbę czasu.