Jak działa pamięć podręczna lakieru + NGINX Reverse Proxy?

Opublikowany: 2022-08-09

W tym artykule omówimy odwrotne proxy NGINX pamięci podręcznej Varnish i sposób, w jaki można ją skonfigurować.

Serwer proxy z naciskiem na buforowanie HTTP to Varnish. Jest to akcelerator HTTP i może działać jako zwrotny serwer proxy dla serwera WWW Apache lub NGINX. Strony internetowe o dużym natężeniu ruchu i wysokiej widoczności wdrożyły Varnish.

Spis treści

Co to jest pamięć podręczna lakieru?

Dla firmy internetowej pamięć podręczna jest często najważniejszym elementem oprogramowania. Varnish Cache to potężny silnik HTTP o otwartym kodzie źródłowym/odwrotny serwer proxy HTTP, który robi dokładnie to, co sugeruje jego nazwa: buforuje (lub przechowuje) kopię strony internetowej, gdy odwiedzający ją po raz pierwszy wyświetli. Może to przyspieszyć działanie witryny nawet o 1000 procent. Varnish wysyła do serwera pojedyncze żądanie buforowania strony, po czym obsługuje kolejne żądania dotyczące tej samej strony. Powoduje to niewiarygodnie szybkie dostarczanie treści i mniejsze zapotrzebowanie na zasoby serwera zaplecza.

  • Podstawowe kompetencje firmy Varnish to szybkość i wydajność.
  • Oszczędności na infrastrukturze serwerowej
  • Skalowalność - Varnish umożliwia Twojej witrynie zaspokojenie popytu niezależnie od liczby odwiedzających lub próśb.
  • Ochrona przed awariami: Varnish przechowuje informacje z pamięci podręcznej nawet w przypadku awarii serwera.
  • Elastyczność: Język konfiguracji lakieru (VCL) pozwala na tworzenie wyspecjalizowanych rozwiązań, reguł i modułów.
  • Ulepszone wrażenia użytkownika

Jak działa pamięć podręczna lakieru?

Zanim dotrą do zaplecza serwera WWW, Varnish przetwarza wszystkie przychodzące żądania. Jego pamięć podręczna obsługuje cały ruch sieciowy i domyślnie odświeża się co dwie minuty.

Pamięć podręczna lakieru Nginx Reverse Proxy

Varnish przekieruje żądanie do zaplecza serwera WWW i buforuje wynik, jak właśnie widzieliśmy w ogólnym akapicie odwrotnego proxy, jeśli żądanie nie jest buforowane.

Gdy żądania zostaną zapisane w pamięci podręcznej, są umieszczane w pamięci, a następnie mogą być szybko pobierane i wysyłane do klientów. Varnish wykorzystuje język VCL do wyrażania ustawień, zasad buforowania i innych reguł (język konfiguracji lakieru).

Możesz odpowiedzieć na każde żądanie inaczej, używając tego języka i jego odmian. Na przykład możesz skierować niektóre żądania do określonego zaplecza lub poinstruować Varnish, aby podjął inne działanie w oparciu o charakterystykę przychodzącego żądania lub jego wyniki.

Buforowany materiał może być nadal dostarczany nawet wtedy, gdy serwer WWW jest niedostępny, z powodu wbudowanej funkcji zwanej sondowaniem zaplecza, która jest kolejną niesamowitą funkcją Varnish. Varnish będzie nadal dostarczać zawartość z pamięci podręcznej przez okres zwany czasem prolongaty, jeśli wykryje przestój. Odpytywanie zaplecza wysyła zapytania do serwera z częstotliwością, którą możesz elastycznie ustawić.

Co to jest Nginx?

NGINX to oprogramowanie typu open source, które może być używane do przesyłania strumieniowego wideo, buforowania, odwrotnych serwerów proxy, udostępniania stron internetowych i innych funkcji. Początkowo był serwerem internetowym zbudowanym z myślą o najwyższej szybkości i niezawodności. NGINX może działać jako serwer HTTP, serwer proxy poczty e-mail (IMAP, POP3 i SMTP), zwrotny serwer proxy i moduł równoważenia obciążenia dla serwerów HTTP, TCP i UDP, a także jako serwer HTTP.

Co to jest zwrotny serwer proxy?

Podstawową funkcją odwrotnego proxy jest ochrona serwerów WWW przed ruchem przychodzącym. Każde żądanie połączenia jest odbierane przez zwrotny serwer proxy, który przekazuje je przez wiele serwerów przed połączeniem z tym, który obsługiwał żądanie.

Każda operacja zwrotnego proxy ma trzy główne fazy:

  1. Zbieranie żądań połączeń: na granicy sieci zwrotny serwer proxy akceptuje żądania przychodzące.
  2. Uzgadnianie trójetapowe protokołu TCP: połączenie z odwrotnym serwerem proxy jest tworzone po trójetapowym uzgadnianiu protokołu TCP, a pierwsze połączenie zostaje zamknięte.
  3. Połączenie z serwerem pochodzenia: Używając fikcyjnego adresu IP, zwrotny serwer proxy łączy serwer pochodzenia z żądaniem klienta.

Użytkownicy nigdy nie mogą łączyć się bezpośrednio z serwerem pochodzenia, ponieważ wszystkie połączenia przeglądarki internetowej z aplikacjami internetowymi są zawsze nawiązywane przez zwrotny serwer proxy.

Jak skonfigurować odwrotne proxy Nginx w pamięci podręcznej Varnish?

Zainstaluj Nginx na swoim serwerze

Przede wszystkim musimy zainstalować Nginx z repozytorium Ubuntu za pomocą polecenia apt

 sudo apt update apt install nginx -y

Po zakończeniu instalacji musimy uruchamiać i włączać Nginx za każdym razem przy starcie systemu za pomocą polecenia systemctl

 systemctl start nginx systemctl enable nginx

Skonfiguruj Nginx na porcie 88

Skonfigurujemy Nginx tak, aby używał do działania niekonwencjonalnego portu HTTP 8080. W tym celu musimy zmodyfikować pliki wirtualnego hosta znajdujące się w katalogu „sites-available”.

 nano /etc/nginx/sites-available/default

Zmień wartość wiersza „nasłuchuj” na 8080. Zapisz i wyjdź.

Sprawdź błędy, testując teraz ustawienia Nginx. Następnie uruchom ponownie usługę.

 nginx -t systemctl restart nginx

Sprawdź jeszcze raz Nginx za pomocą netstat i upewnij się, że działa na niekonwencjonalnym porcie HTTP 8080.

 netstat -plntu

Został zainstalowany, a port 8080 jest obecnie używany przez serwer WWW Nginx.

Zainstaluj lakier na Ubuntu

Musimy zainstalować lakier za pomocą polecenia apt

 sudo apt install varnish -y

Korzystając z poleceń systemctl wymienionych poniżej, uruchom lakier i ustaw go tak, aby rozpoczynał się automatycznie po uruchomieniu systemu.

 systemctl start varnish systemctl enable varnish

Domyślnie lakier użyje portu 6082 dla interfejsu WWW administratora i portu 6081 dla dostępu publicznego. Upewnij się, że niektóre porty są wymienione, używając polecenia netstat do sprawdzenia.

 netstat -plntu

Akcelerator HTTP Varnish został zainstalowany

Skonfiguruj Varnish jako zwrotny serwer proxy dla Nginx

Jako odwrotny serwer proxy dla serwera WWW Nginx zostanie użyty Varnish. Serwer sieciowy Nginx będzie działał na porcie HTTP 8080, a Varnish na porcie HTTP 80.

W tej fazie skonfigurujemy Varnish dla Nginx, zidentyfikujemy serwer zaplecza i zmodyfikujemy Varnish tak, aby używał portu HTTP 80 jako domyślnego portu.

Edytuj plik „default.vcl”, przechodząc od razu do katalogu konfiguracji lakieru. i upewnij się, że host to 127.0.0.1, a port to 8080

 nano /etc/varnish/default.vcl

Konfiguracja backendu została zakończona.

Następnym krokiem jest skonfigurowanie Varnish do korzystania z portu HTTP 80. Edytuj plik konfiguracyjny lakieru, przechodząc do katalogu 'varnish' w katalogu '/etc/default'.

 nano /etc/default/varnish

Upewnij się, że domyślny port to 6081, a port HTTP to 80

Plik usługi lakieru w katalogu '/lib/systemd/system' powinien być teraz edytowany. Edytuj plik lakier.service, przechodząc do katalogu systemowego systemd.

 cd /lib/systemd/system nano varnish.service

Zastąp port HTTP 80 portem lakieru 6081 w wierszu „ExecStart”.

Teraz przeładuj konfigurację systemd i zrestartuj lakier

 systemctl daemon-reload systemctl restart varnish

Sprawdź lakier za pomocą polecenia netstat

 netstat -plntu

konfiguracja lakieru jako odwrotnego proxy dla Nginx została zakończona

Skonfiguruj zaporę sieciową UFW

Domyślna zapora czytelna dla człowieka w systemie operacyjnym Ubuntu nazywa się „UFW”. Użyj polecenia apt pokazanego poniżej, aby je zainstalować, jeśli nie masz jeszcze pakietu.

 sudo apt install ufw

Włączymy zaporę i otworzymy nowe porty SSH, HTTP i HTTPS.

polecenia ufw wymienione poniżej.

 ufw allow ssh ufw allow http ufw allow https

Teraz włącz zaporę i spraw, aby zawsze uruchamiała się w czasie rozruchu.

 ufw enable

Teraz, gdy zapora UFW jest aktywna, zarówno porty HTTP, jak i HTTPS są dostępne z sieci zewnętrznej.