Nie każdą wolną stronę da się przyspieszyć kolejną wtyczką. Czasem problem znajduje się niżej: w sposobie obsługi ruchu pomiędzy serwerem WWW, SSL, cache oraz samą aplikacją.
Ten projekt powstał jako rozszerzenie konfiguracji ISPConfig 3 dla stron opartych na WordPressie oraz Craft CMS. Jego zadaniem było uporządkowanie całego przepływu zapytań i dodanie warstwy cache przed Apache.
W praktyce oznacza to, że aplikacja nie musi generować każdej odpowiedzi od początku. Jeżeli gotowa wersja strony znajduje się już w pamięci podręcznej, Varnish może zwrócić ją szybciej i ograniczyć liczbę żądań trafiających bezpośrednio do backendu.
W przypadku ruchu HTTPS zapytanie przechodzi przez kilka jasno rozdzielonych warstw:
Internet
→ Nginx SSL Termination :443
→ Varnish Cache localhost:7443
→ Apache
→ WordPress lub Craft CMS
Nginx odpowiada za obsługę połączenia HTTPS. Następnie przekazuje ruch do Varnisha, który sprawdza, czy odpowiedź może zostać zwrócona z cache. Dopiero gdy jest to potrzebne, zapytanie trafia do Apache i aplikacji.
Dla ruchu bez SSL schemat jest krótszy:
Internet
→ Varnish Cache :80
→ Apache
→ WordPress lub Craft CMS
Dzięki temu każda warstwa ma jedno konkretne zadanie. Konfiguracja pozostaje czytelna, a późniejsze utrzymanie serwera nie opiera się na przypadkowych obejściach.
Projekt obejmuje:
Wydajność strony nie kończy się na wyniku jednego testu. Liczy się również zachowanie serwera pod większym obciążeniem, poprawna obsługa HTTPS, przewidywalne czyszczenie cache oraz możliwość dalszego rozwijania środowiska bez dokładania kolejnych warstw chaosu.
W tym projekcie nie chodziło więc wyłącznie o uruchomienie Varnisha. Ważniejsze było połączenie kilku usług w jeden spójny system, który można później utrzymywać i rozwijać.
Opis grafiki: przepływ ruchu HTTPS w środowisku ISPConfig 3: Internet → Nginx SSL → Varnish Cache → Apache → WordPress lub Craft CMS.
ISPConfig 3 Linux Debian Nginx Varnish Cache Apache WordPress Craft CMS Cloudflare WP Rocket Brotli
Kod projektu oraz instrukcja wdrożenia są dostępne publicznie na GitHubie:
Zobacz repozytorium Varnish Cache dla ISPConfig 3
Gdy problem nie kończy się na jednej wtyczce, sprawdzam cały przepływ: kod aplikacji, bazę danych, cache, integracje oraz konfigurację serwera.
Opisz obecne środowisko. Zobaczymy, gdzie naprawdę znajduje się wąskie gardło.