4. Varnish-Cache
Reverse Proxy / LoadBalancer
Cache
Konfigurowalność / Elastyczność
Protokół HTTP (brak SSL)
Badanie zdrowia backendów
Dowolna możliwość wyboru backendów
Możliwośc zmiany zapytania / odpowiedzi HTTP
Edge Side Includes
Trzyma w cache odpowiedzi otrzymane od backendów
Eliminuje dogpile effect
Maszyna stanowa / automat skończony
Konfiguracja jest kodem / zbiorem funkcji wykonywanych
w poszczególnych stanach
Możliwość pisania modułów albo wstawek inline-C
6. Funkcja jest wykonywana w po pobraniu danych od backendu
Manipulujemy odpowiedzią
Podejmujemy decyzję czy zapisujemy do cache
Może nie być wykonana - żądanie HTTP zostało obsłużone przez cache
Varnish-Cache
vcl_recv()
vcl_fetch()
Funkcja jest wykonywana na początku przetwarzania zapytania
Ustawiamy backend / Wybieramy odpowiedź z cache
Normalizujemy zapytanie
9. Warsztat
LoadBalancer director / backends / health checks
vcl_recv
Zasoby statyczne vcl_recv + vcl_fetch
ochrona przed dogpile effect
Zasoby dynamiczne Cookie
Zasoby dynamiczne
personalizowane
ESI
Ajax
10. Co więcej?
Grace Serwuje przeterminowane dane z cache
Restarts Umożliwa zresetowanie procesu (powrót do vcl_recv).
Możliwa reakcja na błędne odpowiedzi z backendów
Moduły curl
throttle
geoip
Normalizacja URL Różne linki prowadzące do tych samych zasobów (przydatne
przy statycznych plikach typu js/css)
Sterowanie cache TTL można pobierać z backendu (nagłówek)
Inwalidacja cache przez HTTP
12. Varnish-Cache w GOG.com
Wiele serwerowni Varnish-Cache na maszynach POP wybiera odpowiednie
datacenter
Obsługa OAuth2 Varnish-Cache rozwiązuje access token na client_id / user_id
Cache z cookie Ten sam URL ale wiele wersji językowych, wersja mobilne/
desktop.
Ochrona przez DoS Chcemy na Varnish-Cache zrealizować system ochrony przed
atakami typu DoS