Varnish: Różnice pomiędzy wersjami

(Utworzono nową stronę "{{Stub}} ''Varnish'' to akcelerator stron www. Wygenerowany przez backend (np. PHP) kod html zapisuje w pamięci. Zamiast za każdym razem przekazywać żądanie do back...")
 
(UWAGA! Usunięcie treści (strona pozostała pusta)!)
 
(Nie pokazano 28 wersji utworzonych przez 4 użytkowników)
Linia 1: Linia 1:
{{Stub}}
 
''Varnish'' to akcelerator stron www. Wygenerowany przez backend (np. PHP) kod html zapisuje w pamięci. Zamiast za każdym razem przekazywać żądanie do backendu korzysta z przygotowanej wcześniej kopii. Pozwala to zmniejszyć obciążenie generowane przez stronę (zużycie interpretatorów), a co za tym idzie zwiększyć możliwą liczbę jej wywołań. Na serwerach ''MyDevil'' varnish cachuje tylko treści dynamiczne, części statyczne stron mają własny, działający zawsze system cache, niezależny od varnisha.
 
  
=== Warunki konieczne  ===
 
 
Aby strona została załadowana z pamięci:
 
* nie może ustawiać cookies
 
* odpowiedź nie może zawierać nagłówka zabraniającego cache'owaia, np. Cache-control: no-cache, Pragma: nocache czy też Expires: z datą dawniejszą niż aktualna.
 
 
do zrobienia poniżej:
 
<!---
 
 
=== Kontrola zachowania cache ===
 
 
Okres, na jaki strona ma być cache'owana można ustawić, używając na stronie nagłówka Cache-control. Na przykład: jeżeli chcemy aby nasza strona lub jej konkretna podstrona były przechowywane przez okres 10 minut można wysyłać nagłówek: Cache-Control: public, max-age=600. Jeżeli w ogóle nie użyjemy na stronie tego nagłówka, a będzie ona spełniać warunki, czas jej przechowywania w cache to 120 sekund (2 min).
 
 
 
Używanie varnisha i diagnostyka¶
 
 
Aby dana domena korzystała z naszego varnisha, musi ona wskazywać na odpowiedni adres IP w zależności od przyznanego zestawu serwerów:
 
 
dla web0: 212.91.26.155  (nazwa DNS: cache0.mydevil.net),
 
dla web1: 212.91.26.152  (nazwa DNS: cache1.mydevil.net),
 
dla web2: 212.91.26.159  (nazwa DNS: cache2.mydevil.net),
 
dla  s3: 185.36.169.156 (nazwa DNS: cache3.mydevil.net).
 
W przypadku innych adresów strona w ogóle nie przechodzi przez akcelerator. Jeżeli mamy witrynę example.com i chcielibyśmy przetestować jej działanie z varnishem, można nakierować np. subdomenę cache.example.com na adres serwera cache'ującego oraz dodać stronę typu pointer wskazującą na example.com  Więcej informacji: o tworzeniu domeny, o stronie typu pointer. Przypominamy, że można tę operację wykonać zarówno z panelu DevilWEB2, jak i z konsoli, za pomocą Devil2. Polecenie w konsoli: devil www add cache.example.com pointer example.com
 
 
 
Po rozpropagowaniu DNS możemy testować jak zachowuje się nasza strona. Aby sprawdzić czy w ogóle strona jest cache'owana oraz poznać ewentualny powód jej 'odrzucenia' można posłużyć się narzędziem curl:
 
 
curl -sI http://cache.example.com/ |egrep "X-Cache|Cache-Control|Age|Expires"
 
Takie polecenie pozwoli obejrzeć jakie nagłówki zostały odebrane. Nagłówek X-Cacheable jest dodawany przez varnisha i pozwala określić czy strona może być zapisana w pamięci podręcznej, czy też nie oraz dlaczego. Przykładowo, otrzymując w odpowiedzi:
 
 
Cache-Control: no-cache, must-revalidate, post-check=0, pre-check=0
 
X-Cacheable: NO:Cache-control=no-cache
 
Widzimy, że strona jest przekazywana dalej, z powodu nagłówka Cache-Control zabraniającego cachowania. Z kolei przykładowa odpowiedź:
 
 
Cache-Control: public, max-age=600
 
X-Cacheable: YES
 
Age: 0
 
X-Cache: MISS
 
Będzie oznaczała, że strona została dodana do cache, jednak to konkretne żądanie zostało przekazane dalej (ponieważ w pamięci nie było jeszcze odpowiednio świeżej wersji). Wykonując takie samo polecenie chwilę później, powinniśmy zobaczyć wynik podobny do poniższego:
 
 
Cache-Control: public, max-age=600
 
X-Cacheable: YES
 
Age: 25
 
X-Cache: HIT
 
Nagłówek X-Cache: Hit oznacza, że varnish wysłał nam kopię z pamięci podręcznej, która została utworzona 25 sekund temu (nagłówek Age), co oznacza, że jeszcze przez 575 sekund (max-age=600 - Age) nasze interpretatory PHP będą wolne od konieczności przetwarzania takiego żądania.
 
 
Czego można używać z varnishem?¶
 
 
Ponieważ strona musi spełniać pewne warunki, nie wszystkie nadają się do użycia z varnishem. Strony które dla każdego użytkownika generują inną zawartość (np. gry przeglądarkowe, zamknięte fora) nie nadają się do cache'owania varnishem, i nie ma sensu go dla nich używać. Z kolei takie strony jak blogi, strony domowe, firmowe - słowem, nie zmieniające się bardzo często i w większości nie używające logowania (a co za tym idzie - ciasteczek) mogą zostać przyspieszone tymże narzędziem, jednak zależy to też od działania i budowy takiej strony.
 
 
W warunkach testowych udało nam się ustalić, że niektóre z popularnych CMSów (WordPress, Joomla!) w standardowej konfiguracji bezproblemowo współpracują z Varnishem, inne (MediaWiki) wymagają kilku zmian w kodzie strony, a jeszcze inne (praktycznie każdy skrypt forum) nie nadają się do współpracy z Varnishem ze względu na ich sposób działania.
 
 
-->
 

Aktualna wersja na dzień 18:22, 1 maj 2018