Czym jest Varnish i jak można go wykorzystać do poprawy wydajności HTTP?
Absolutnie każdy użytkownik, który ma do czynienia z tworzeniem stron internetowych i aplikacji, rozumie, że we współczesnym świecie technologii internetowych wydajność projektu jest czynnikiem krytycznym. Szybko ładujące się strony nie tylko poprawiają komfort użytkowania, ale także zwiększają ranking SEO witryny. Ma to również ogromny wpływ na dynamikę wzrostu zysków projektu. Jednym z narzędzi, które może znacznie poprawić wydajność żądań HTTP jest Varnish Cache. Niniejszy artykuł ma na celu rozważenie korzyści płynących z używania Varnish i tego, jak może on być przydatny. Pierwszą rzeczą, o której należy wspomnieć, jest to, że Varnish jest wysokowydajnym akceleratorem HTTP, który służy do buforowania zawartości strony internetowej. Jego zadaniem jest zainstalowanie się przed serwerem WWW i przetwarzanie żądań klientów, zwracając buforowane kopie stron zamiast kontaktowania się z serwerem WWW za każdym razem. To znacznie zmniejsza obciążenie serwera i przyspiesza przetwarzanie żądań. Oznacza to, że narzędzie to faktycznie przyspiesza, czasem nawet kilkukrotnie, pracę serwera.
Jak zainstalować i zarządzać Varnish
Metody instalacji zależą od konkretnego systemu operacyjnego, w tym przewodniku skupiono się na Ubuntu 22.04. Varnish można zainstalować za pomocą następującego polecenia:
apt install varnish
Po pomyślnym zainstalowaniu Varnish, należy skonfigurować go do pracy z serwerem WWW. Domyślnie Varnish nasłuchuje na porcie 6081. Konfigurację można zmienić w pliku
/etc/varnish/default.vcl.
Na przykład, może to wyglądać tak, jeśli zdecydujesz się zmienić port (na przykład port http-alt )
backend default {
.host = "127.0.0.1";
.port = "8080";
Przykład pracy z Varnish
Istnieje kilka wariantów pracy z Varnish. Na przykład należy skonfigurować czas życia pamięci podręcznej (TTL) i można go skonfigurować w zależności od rodzaju treści. Na przykład w przypadku witryny z wiadomościami można ustawić krótki czas buforowania dla bieżących wiadomości i dłuższy dla zarchiwizowanych wiadomości i mniej aktualnych materiałów.
sub vcl_backend_response {
if (bereq.url ~ "^/news") {
set beresp.ttl = 2m;
} else {
set beresp.ttl = 72h;
}
}
Jak można go użyć do poprawy wydajności HTTP?
Istnieje kilka ważnych korzyści, które użytkownicy mogą uzyskać, używając Varnish do poprawy wydajności HTTP. Niektóre z nich wymieniono poniżej:
- Anonimizacja. Użytkownicy Internetu często doświadczają procesu skanowania nazwy domeny. Może to wskazywać na odwrotne proxy, które uzyskuje informacje o serwerze proxy, a nie o prawdziwym serwerze internetowym za nim.
- Bezpieczeństwo. Strona internetowa chroniona przez odwrotne proxy może łatwiej uniknąć złośliwych ataków. Pomoże to w utrzymaniu płynnego działania witryny bez powodowania strat dla klientów.
- Pobieranie SSL lub zakończenie SSL. Odwrócony serwer proxy może akceptować wszystkie żądania HTTPS i wykonywać uzgadnianie SSL z przeglądarką użytkownika. Żądania te są następnie konwertowane na HTTP i wysyłane do serwera WWW. Uwalnia to serwer od uzgadniania SSL i może zająć się innymi ważnymi czynnościami (takimi jak pobieranie pozostałej zawartości strony internetowej);
- I wreszcie, buforowanie! Jeśli zezwolisz odwrotnemu serwerowi proxy na tymczasowe przechowywanie statycznych treści na twoich stronach, będą one przetwarzane za każdym razem, gdy zostanie do niego wysłane nowe żądanie: nie będzie podróży w obie strony do oryginalnego serwera, a twoje strony będą ładować się szybciej.