Wyszukiwanie w witrynie

Jak zainstalować pamięć podręczną lakieru dla Apache na CentOS/RHEL 8


Varnish Cache to darmowy, nowoczesny i wydajny akcelerator aplikacji internetowych o otwartym kodzie źródłowym. Jest to szybki zwrotny serwer proxy HTTP, który buforuje zawartość, aby przyspieszyć działanie serwera internetowego, przechowując treści internetowe w pamięci serwera – w pamięci podręcznej. Jest skonfigurowany do działania przed serwerem źródłowym, takim jak serwer WWW Apache (HTTPD).

Gdy klient żąda treści, Varnish akceptuje żądanie HTTP, wysyła żądanie do serwera źródłowego, buforuje zwrócone obiekty i odpowiada na żądanie klienta. Następnym razem, gdy klient zażąda tej samej treści, Varnish udostępni ją z pamięci podręcznej. W ten sposób skraca czas odpowiedzi i zużycie przepustowości sieci w przypadku przyszłych równoważnych żądań.

Varnish działa również jako router żądań HTTP, zapora sieciowa aplikacji internetowych, moduł równoważenia obciążenia i nie tylko. Jest konfigurowany przy użyciu elastycznego języka konfiguracji Varnish (VCL), który można rozszerzyć za pomocą modułów Varnish (znanych również jako VMOD >), obsługuje Edge Side Zawiera (ESL), kompresję i dekompresję Gzip i wiele więcej.

W tym artykule dowiesz się, jak zainstalować serwer WWW Apache HTTPD i Varnish Cache 6 na świeżym serwerze CentOS/RHEL 8, łącznie z konfiguracją Lakier do uruchomienia przed serwerem HTTPD.

Warunki wstępne:

  • Serwer z instalacją CentOS 8
  • Serwer z instalacją RHEL 8 z włączoną subskrypcją Red Hat w Twoim systemie.

Krok 1: Instalowanie serwera WWW Apache na CentOS/RHEL 8

1. Rozpocznij od aktualizacji wszystkich zainstalowanych pakietów oprogramowania w systemie w następujący sposób, używając polecenia DNF.

dnf update

2. Następnie uruchom następujące polecenie, aby zainstalować serwer WWW Apache HTTP z repozytorium AppStream.

dnf install httpd

3. Zaraz po zakończeniu instalacji uruchom usługę httpd, włącz ją, aby automatycznie uruchamiała się podczas uruchamiania systemu i sprawdź jej status, aby potwierdzić, że jest uruchomiona i działa, używając polecenia systemctl.

systemctl start httpd
systemctl enable httpd
systemctl status httpd

4. Domyślnie CentOS/RHEL 8 zawiera całkowicie zablokowaną zaporę ogniową (uruchom firewall-cmd –state, aby potwierdzić). Musisz otworzyć dostęp do usługi HTTP w zaporze, aby umożliwić użytkownikom dostęp do witryn lub aplikacji działających poprzez HTTP, a także ponownie załadować ustawienia zapory, aby zastosować nowe zmiany.

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

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

5. Teraz, gdy serwer WWW Apache jest uruchomiony, możesz przejść dalej, aby zainstalować Varnish Cache w systemie, używając następującego polecenia.

dnf module install varnish

6. Po udanej instalacji możesz sprawdzić wersję Varnish zainstalowaną w Twoim systemie.

varnishd -V

7. Następnie instalowany jest główny plik wykonywalny jako /usr/sbin/varnishd. Ponadto pliki konfiguracyjne Varnish są przechowywane w katalogu /etc/varnish, gdzie:

  • /etc/varnish/default.vcl – to główny plik konfiguracyjny lakieru napisany przy użyciu VCL.
  • /etc/varnish/secret – to tajny plik lakieru.

8. Teraz uruchom usługę lakierowania, na razie włącz ją, aby automatycznie uruchamiała się podczas uruchamiania systemu w przypadku ponownego uruchomienia serwera i sprawdź jej status, aby upewnić się, że działa w następujący sposób.

systemctl start varnish
systemctl enable varnish
systemctl status varnish

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

9. Teraz czas skonfigurować Varnish Cache do działania przed usługą Apache. Domyślnie serwer Apache jest skonfigurowany do nasłuchiwania na porcie 80, jest to zdefiniowane w głównym pliku konfiguracyjnym /etc/httpd/conf/httpd.conf.

Otwórz go do edycji za pomocą ulubionego edytora tekstu.

vi /etc/httpd/conf/httpd.conf

Poszukaj parametru Słuchaj. Aby uruchomić Varnish przed serwerem Apache, powinieneś zmienić domyślny port 80 na 8080 (lub inny wybrany port) zgodnie pokazano na poniższym zrzucie ekranu.

Ten port zostanie później dodany jako port serwera zaplecza w pliku konfiguracyjnym Varnish.

Ponadto konfiguracja wirtualnego hosta dla każdej witryny/aplikacji internetowej, która będzie obsługiwana przez Varnish, powinna być skonfigurowana tak, aby nasłuchiwała powyższego portu. Oto konfiguracja naszej strony testowej (/etc/httpd/conf.d/tecmint.lan.conf).

<VirtualHost *:8080>
    DocumentRoot "/var/www/html/tecmint.lan/"
    ServerName www.tecmint.lan
    # Other directives here
</VirtualHost>

Ważne: aby zapobiec używaniu domyślnej strony testowej serwera Apache HTTP, skomentuj wszystkie linie w pliku /etc/httpd/conf.d /welcome.conf lub po prostu usuń plik.

rm /etc/httpd/conf.d/welcome.conf 

10. Następnie przetestuj składnię konfiguracji httpd pod kątem błędów. Jeśli wszystko jest w porządku, uruchom ponownie usługę httpd, aby zastosować nowe zmiany.

httpd -t
systemctl restart httpd

Konfigurowanie Varnish dla Systemd

11. Aby wdrożyć Varnish przed HTTPD, wystarczy go skonfigurować tak, aby nasłuchiwał żądań klientów na domyślnym porcie HTTP 80, jak wyjaśniono poniżej.

Pamiętaj, że w Varnish Cache 6.0 i nowszych wersjach musisz ustawić port serwer lakieru, na którym nasłuchuje, w pliku usługi Varnish dla systemd. Najpierw otwórz go do edycji.

systemctl edit --full  varnish

Poszukaj linii ExecStart, a następnie zmień wartość przełącznika -a (który określa adres i port nasłuchiwania lakieru) z :6081 do :80, jak pokazano na poniższym zrzucie ekranu.

Co ważne, jeśli nie podasz 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ź.

Konfigurowanie serwerów zaplecza Varnish przy użyciu VCL

12. Teraz musisz skonfigurować serwer Origin, znany w terminologii Varnish jako backend. Jest to serwer, który rozumie protokół HTTP, z którym Varnish komunikuje się w celu pobrania treści – w tym przypadku httpd. Jest konfigurowany w głównym pliku konfiguracyjnym /etc/varnish/default.vcl.

vi /etc/varnish/default.vcl 

Istnieje domyślna sekcja konfiguracji backendu o nazwie domyślna. Możesz zmienić „domyślny” na serwer1 (lub dowolną wybraną nazwę, aby spełnić Twoje standardy środowiskowe). Domyślnie parametr host wskazuje na localhost, przy założeniu, że serwer zaplecza działa na hoście lokalnym.

Następnie ustaw port na 8080 (port zdefiniowany w pliku konfiguracyjnym wirtualnego hosta Apache), jak pokazano na zrzucie ekranu.

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

Jeśli Twój serwer backendu działa na innym hoście, na przykład innym serwerze o adresie 10.42.1.10, parametr Host powinien wskazywać ten adres IP.

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

Zapisz plik i zamknij go.

13. Po dokonaniu wszystkich niezbędnych zmian dotyczących Varnish, załaduj ponownie konfigurację menedżera systemd, aby odzwierciedlić nowe zmiany w pliku usługi Varnish, a także uruchom ponownie usługę Lakier, aby zastosować ogólne zmiany.

systemctl daemon-reload
systemctl restart varnish

14. W tym momencie Varnish i Apache powinny teraz nasłuchiwać odpowiednio na porcie 80 i 8080. Możesz to potwierdzić za pomocą polecenia statystyki gniazda.

ss -tpln

Krok 4: Testowanie pamięci podręcznej lakieru i konfiguracji Apache

14. Aby przetestować konfigurację Varnish Cache-HTTPD, otwórz przeglądarkę internetową i nawiguj, korzystając z serwera IP lub FQDN, jak pokazano na poniższym zrzucie ekranu.

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

Następnie sprawdź, czy strony internetowe są udostępniane przez Varnish Cache w następujący sposób. Sprawdź nagłówki HTTP, klikając prawym przyciskiem myszy wyświetloną stronę internetową, wybierz opcję Sprawdź, aby otworzyć narzędzia programistyczne, a następnie kliknij kartę Sieć i załaduj ponownie stronę. Następnie wybierz żądanie wyświetlenia nagłówków HTTP, aby to potwierdzić, jak pokazano na poniższym zrzucie ekranu.

Alternatywnie możesz uruchomić następujące polecenie curl, aby to sprawdzić.

curl -I http:///10.42.0.144
OR
#curl -I http:///www.tecmint.lan

Przydatne programy narzędziowe do buforowania lakieru

15. Zakończmy ten przewodnik przeglądem niektórych przydatnych programów dostępnych w dystrybucji Varnish Cache. Zawierają narzędzia do administrowania pamięcią podręczną lakieru, wyświetlania szczegółowych zapisów dziennika i przeglądania statystyk wydajności lakieru, jak opisano poniżej.

lakieradm

Pierwszym z nich jest varnishadm, który służy do administrowania działającą instancją Varnish. Ustanawia połączenie interfejsu wiersza poleceń z varnishd. Może mieć wpływ na działającą instancję Varnish, uruchamiając i zatrzymując varnishd, zmieniając parametry konfiguracyjne, przeładowując VCL, wyświetlając listę backendów i nie tylko.

varnishadm
> backend.list

Aby uzyskać więcej informacji, przeczytaj artykuł man lakieradm.

lakierlog

Kolejnym programem jest varnishlog, który służy do uzyskiwania dostępu do danych specyficznych dla żądania (tj. informacji o konkretnych klientach i żądaniach). Dostarcza dużej ilości informacji, dlatego zazwyczaj konieczne jest ich filtrowanie.

varnishlog

Aby uzyskać więcej informacji, przeczytaj man lakierlog.

lakierstat

Mamy również varnishstat (statystyki lakieru), które umożliwiają dostęp do ogólnych statystyk, takich jak całkowita liczba żądań, liczba obiektów i inne.

varnishstat

Aby uzyskać więcej informacji, przeczytaj man lakierstat.

lakier

Następnie mamy narzędzie varnishtop, które odczytuje dziennik Varnish i prezentuje stale aktualizowaną listę najczęściej występujących wpisów w dzienniku.

varnishtop 

Więcej informacji znajdziesz w męskim lakierze.

lakiernik

Innym przydatnym narzędziem jest narzędzie varnishhist (historia lakieru), które odczytuje logi Varnish i prezentuje stale aktualizowany histogram pokazujący rozkład ostatnich N żądań według ich przetwarzanie.

varnishhist

Więcej informacji znajdziesz w artykule męski lakiernik.

Masz to! Pomyślnie wdrożyłeś Varnish Cache, aby przyspieszyć zawartość aplikacji internetowej udostępnianej przy użyciu serwera Apache HTTP w CentOS/RHEL 8.

Jeśli masz jakieś pytania na ten temat lub chcesz się podzielić przemyśleniami, skorzystaj z poniższego formularza opinii. Więcej informacji znajdziesz w dokumentacji Varnish Cache 6.0.

Jeśli chcesz włączyć HTTPS w swojej witrynie, sprawdź nasz następny artykuł, który pokaże, jak włączyć SSL/TLS dla Varnish Cache za pomocą Hitch na CentOS/RHEL 8.