Wyszukiwanie w witrynie

Jak zainstalować Varnish Cache 6 dla Nginx na CentOS/RHEL 8


Varnish Cache (powszechnie określany jako Varnish) to wydajny i szybki akcelerator HTTP zwrotnego proxy HTTP typu open source z nowoczesną architekturą i elastycznym język konfiguracji. Bycie odwrotnym proxy oznacza po prostu oprogramowanie, które można wdrożyć na serwerze internetowym (który jest serwerem źródłowym lub backendem), takim jak Nginx, aby odbierać żądania HTTP klientów i przekazywać je do serwer pochodzenia do przetwarzania. Dostarcza także odpowiedź z serwera pochodzenia do klientów.

Varnish działa jako pośrednik pomiędzy Nginx a klientami, ale zapewnia pewne korzyści w zakresie wydajności. Jego głównym celem jest szybsze ładowanie aplikacji, działając jako silnik buforujący. Odbiera żądania od klientów i jednokrotnie przekazuje je do backendu, aby buforować żądaną treść (przechowywać pliki i fragmenty plików w pamięci). Wtedy wszystkie przyszłe żądania dotyczące dokładnie podobnych treści będą obsługiwane z pamięci podręcznej.

To sprawia, że aplikacje internetowe ładują się szybciej i pośrednio poprawia ogólną wydajność serwera internetowego, ponieważ Varnish będzie udostępniać zawartość z pamięci, zamiast przetwarzać pliki przez Nginx z dysku pamięci.

Oprócz buforowania Varnish ma także kilka innych zastosowań, w tym router żądań HTTP i moduł równoważenia obciążenia, zaporę sieciową aplikacji internetowych i nie tylko.

Lakier jest konfigurowany przy użyciu wysoce rozszerzalnego, wbudowanego języka Varnish Configuration Language (VCL), który umożliwia pisanie zasad dotyczących tego, jak powinny wyglądać przychodzące żądania obsługiwane. Można go używać do tworzenia niestandardowych rozwiązań, reguł i modułów.

W tym artykule omówimy kroki instalacji serwera internetowego Nginx i Varnish Cache 6 na świeżym CentOS 8 lub Serwer RHEL 8. Użytkownicy RHEL 8 powinni upewnić się, że włączyli subskrypcję RedHat.

Aby skonfigurować kompletny stos LEMP zamiast instalować sam serwer WWW Nginx, zapoznaj się z poniższymi przewodnikami.

  1. Jak zainstalować serwer LEMP na CentOS 8
  2. Jak zainstalować serwer LEMP na RHEL 8

Krok 1: Zainstaluj serwer WWW Nginx na CentOS/RHEL 8

1. CentOS/RHEL 8 jest dostarczany z najnowszą wersją oprogramowania serwera internetowego Nginx, dlatego zainstalujemy je z domyślnego repozytorium przy użyciu następujące polecenia dnf.

dnf update
dnf install nginx

2. Po zainstalowaniu Nginx musisz uruchomić, włączyć i sprawdzić status za pomocą następujących poleceń systemctl.

systemctl start nginx
systemctl enable nginx
systemctl status nginx

3. Jeśli jesteś trochę ciekawy, możesz także sprawdzić gniazdo Nginx TCP, które domyślnie działa na porcie 80, używając następującego polecenia ss.

ss -tpln

4. Jeśli w systemie używasz zapory sieciowej, pamiętaj o zaktualizowaniu reguł zapory sieciowej, aby zezwalała na żądania kierowane do serwera internetowego.

firewall-cmd --zone=public --permanent --add-service=http
firewall-cmd --reload

Krok 2: Instalowanie pamięci podręcznej Varnish 6 na CentOS/RHEL 8

5. CentOS/RHEL 8 domyślnie udostępnia moduł Varnish Cache DNF, który zawiera wersję 6.0 LTS (Wsparcie długoterminowe).

Aby zainstalować moduł, uruchom następujące polecenie.

dnf module install varnish

6. Po zakończeniu instalacji modułu możesz sprawdzić wersję Varnish zainstalowaną w Twoim systemie.

varnishd -V

7. Po zainstalowaniu Varnish Cache główne polecenie wykonywalne zainstalowane w /usr/sbin/varnishd i pliki konfiguracyjne lakieru znajdują się w /etc/lakier/.

Plik /etc/varnish/default.vcl to główny plik konfiguracyjny lakieru napisany przy użyciu VCL, a /etc/varnish/secret to lakier tajny plik.

8. Następnie uruchom usługę Varnish, włącz jej automatyczne uruchamianie podczas uruchamiania systemu i potwierdź, że jest uruchomiona.

systemctl start varnish
systemctl enable varnish
systemctl status varnish

Krok 3: Konfigurowanie Nginx do pracy z pamięcią podręczną Varnish

9. W tej sekcji pokażemy, jak skonfigurować Varnish Cache do działania przed Nginx. Domyślnie Nginx nasłuchuje na porcie 80. Zwykle każdy blok serwera (lub host wirtualny) jest skonfigurowany do nasłuchiwania na tym porcie.

Na przykład spójrz na domyślny blok serwera nginx skonfigurowany w głównym pliku konfiguracyjnym (/etc/nginx/nginx.conf).

vi /etc/nginx/nginx.conf

Poszukaj sekcji bloku serwera, jak pokazano na poniższym zrzucie ekranu.

10. Aby uruchomić Varnish przed Nginx, powinieneś zmienić domyślny port Nginx z 80 na 8080 (lub dowolny inny wybrany port).

Należy to zrobić we wszystkich przyszłych plikach konfiguracyjnych bloków serwerów (zwykle tworzonych w /etc/nginx/conf.d/) dla witryn lub aplikacji internetowych, które mają być obsługiwane przez Varnish .

Na przykład blok serwera dla naszej witryny testowej tecmint.lan to /etc/nginx/conf.d/tecmint.lan.conf i ma następującą konfigurację.

server {
        listen       8080;
        server_name  www.tecmint.lan;
        root         /var/www/html/tecmint.lan/;
        location / {
        }

        error_page 404 /404.html;
            location = /40x.html {
        }
        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
}

Ważne: pamiętaj, aby wyłączyć domyślny blok serwera, komentując jego sekcję konfiguracyjną w pliku /etc/nginx/nginx.conf, jak pokazano na poniższym zrzucie ekranu. Dzięki temu możesz uruchomić inne strony/aplikacje na swoim serwerze, w przeciwnym razie Nginx zawsze będzie kierował żądania do domyślnego bloku serwera.

11. Po zakończeniu konfiguracji sprawdź plik konfiguracyjny pod kątem błędów i uruchom ponownie usługę Nginx, aby zastosować ostatnie zmiany.

nginx -t
systemctl restart nginx

12. Następnie, aby otrzymywać żądania HTTP od klientów, musimy skonfigurować Varnish do działania na porcie 80. W przeciwieństwie do wcześniejszych wersji Varnish Cache, gdzie ta zmiana została wprowadzona w pliku środowiska Varnish (który jest obecnie przestarzały), w wersji 6.0 i nowszych .

Musimy dokonać wymaganej zmiany w pliku usługi Varnish. Uruchom następujące polecenie, aby otworzyć odpowiedni plik usługi do edycji.

systemctl edit --full  varnish

Znajdź następującą linię i zmień wartość przełącznika -a, który określa adres i port nasłuchiwania. Ustaw port na 80, jak pokazano na poniższym zrzucie ekranu.

Uwaga, jeśli nie określisz adresu, varnishd będzie nasłuchiwać na wszystkich dostępnych interfejsach IPv4 i IPv6 aktywnych na serwerze.

ExecStart=/usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256m

Zapisz zmiany w pliku i wyjdź.

13. Następnie musisz zdefiniować serwer backendowy, z którego Varnish będzie odwiedzał, aby pobrać zawartość. Odbywa się to w głównym pliku konfiguracyjnym Varnish.

vi /etc/varnish/default.vcl 

Poszukaj domyślnej sekcji konfiguracji zaplecza i zmień ciąg „default” na server1 (lub dowolną wybraną nazwę, która będzie reprezentować Twój serwer początkowy). Następnie ustaw port na 8080 (lub port nasłuchiwania Nginx zdefiniowany w bloku serwera).

backend server1 {
    .host = "127.0.0.1";
    .port = "8080";
}

W tym przewodniku używamy Varnish i Nginx na tym samym serwerze. Jeśli Twój serwer WWW Nginx działa na innym hoście. Na przykład inny serwer z adresem 10.42.0.247, a następnie ustaw parametr .host jak pokazano.

backend server1 {
    .host = "10.42.0.247";
    .port = "8080";
}

Zapisz plik i zamknij go.

14. Następnie musisz ponownie załadować konfigurację menedżera systemd ze względu na ostatnie zmiany w pliku usługi Varnish, a następnie ponownie uruchomić usługę Varnish, aby zastosować zmiany w następujący sposób.

systemctl daemon-reload
systemctl restart varnish

15. Teraz sprawdź, czy Nginx i Varnish nasłuchują na skonfigurowanych gniazdach TCP.

ss -tpln

Krok 4: Testowanie konfiguracji pamięci podręcznej lakieru Nginx

16. Następnie sprawdź, czy strony internetowe są udostępniane za pośrednictwem Varnish Cache w następujący sposób. Otwórz przeglądarkę internetową i nawiguj, korzystając z adresu IP serwera lub FDQN, jak pokazano na poniższym zrzucie ekranu.

http://www.tecmin.lan
OR
http://10.42.0.144

17. Alternatywnie użyj polecenia curl, jak pokazano. Użyj adresu IP swojego serwera lub nazwy FQDN witryny internetowej lub użyj 127.0.0.1 lub localhost, jeśli testujesz lokalnie.

curl -I http:///www.tecmint.lan

Przydatne narzędzia do administrowania pamięcią podręczną lakieru

18. W tej ostatniej sekcji pokrótce opiszemy niektóre przydatne programy narzędziowe dostarczane z Varnish Cache, których możesz używać do kontrolowania varnishd >, uzyskaj dostęp do dzienników w pamięci i ogólnych statystyk oraz nie tylko.

lakieradm

varnishadm narzędzie do kontrolowania działającej instancji Varnish. Ustanawia połączenie CLI z lakierem. Można go na przykład użyć do wyświetlenia listy skonfigurowanych backendów, jak pokazano na poniższym zrzucie ekranu (więcej informacji znajdziesz w artykule man lakieradm).

varnishadm
varnish> backend.list

lakierlog

Narzędzie varnishlog zapewnia dostęp do danych specyficznych dla żądania. Oferuje informacje o konkretnych klientach i żądaniach (przeczytaj man lakierlog, aby uzyskać więcej informacji).

varnishlog

lakierstat

Statystyka lakieru, znana również jako statystyka lakieru, która umożliwia wgląd w bieżącą wydajność programu Varnish, zapewniając dostęp do statystyk w pamięci, takich jak trafienia i chybienia pamięci podręcznej, informacje o pamięci , utworzone wątki, usunięte obiekty (przeczytaj man lakierstat, aby uzyskać więcej informacji).

varnishstat 

lakier

Narzędzie varnishtop odczytuje logi pamięci współdzielonej i prezentuje stale aktualizowaną listę najczęściej występujących wpisów w dzienniku (więcej informacji znajdziesz w man lakier).

varnishtop 

lakiernik

Narzędzie lakiernik (historia lakieru) analizuje dzienniki lakieru i generuje stale aktualizowany histogram pokazujący rozkład ostatnich n żądań według ich przetwarzania ( przeczytaj lakiernik, aby uzyskać więcej informacji).

varnishhist

To wszystko! W tym przewodniku pokazaliśmy, jak zainstalować Varnish Cache i uruchomić go przed serwerem Nginx HTTP, aby przyspieszyć dostarczanie treści internetowych w CentOS/RHEL 8.

Wszelkie przemyślenia lub pytania dotyczące tego przewodnika można podzielić się za pomocą poniższego formularza opinii. Aby uzyskać więcej informacji, przeczytaj dokumentację Varnish Cache.

Główną wadą Varnish Cache jest brak natywnej obsługi HTTPS. Aby włączyć HTTPS w swojej witrynie/aplikacji internetowej, musisz skonfigurować serwer proxy zakończenia SSL/TLS do współpracy z Varnish Cache w celu ochrony Twojej witryny. W następnym artykule pokażemy, jak włączyć HTTPS dla Varnish Cache za pomocą Hitch w CentOS/RHEL 8.