Wyszukiwanie w witrynie

Jak zainstalować Varnish Cache 5.2 dla Nginx na CentOS 7


Varnish Cache (nazywany również Varnish) to wysokowydajny akcelerator HTTP typu open source, przeznaczony do przyspieszania serwerów internetowych. W naszych ostatnich artykułach wyjaśniliśmy, jak skonfigurować pamięć podręczną Varnish dla Apache na CentOS 7 i CentOS 8.

W tym artykule pokażemy, jak zainstalować i używać Varnish Cache jako interfejsu do serwera HTTP Nginx w CentOS 7. Ten przewodnik powinien działać również w RHEL 7.

Wymagania

  1. CentOS 7 z zainstalowanym Apache
  2. CentOS 7 ze statycznym adresem IP

Krok 1: Zainstaluj serwer WWW Nginx na CentOS 7

1. Zacznij od zainstalowania serwera Nginx HTTP z domyślnych repozytoriów oprogramowania CentOS przy użyciu menedżera pakietów YUM w następujący sposób.

yum install nginx

2. Po zakończeniu instalacji uruchom na razie usługę Nginx i włącz ją, aby uruchamiała się automatycznie przy starcie systemu.

systemctl start nginx
systemctl enable nginx
systemctl status nginx

3. Teraz zmodyfikuj reguły zapory systemowej, aby zezwalać na pakiety przychodzące na porcie 80, używając poniższych poleceń.

firewall-cmd --zone=public --permanent --add-port=80/tcp
firewall-cmd --reload
firewall-cmd --zone=public --permanent --add-port=8080/tcp
firewall-cmd --reload

Krok 2: Zainstaluj pamięć podręczną lakieru na CentOS 7

4. Obecnie dostępne są wstępnie skompilowane pakiety RPM dla najnowszej wersji Varnish Cache 6 (tj. 6.5 w momencie pisania tego tekstu), dlatego musisz dodać oficjalne repozytorium Varnish Cache.

Wcześniej musisz włączyć repozytorium EPEL, aby zainstalować kilka pakietów zależności, jak pokazano.

yum install -y epel-release

5. Następnie zainstaluj pygpgme, pakiet do obsługi podpisów GPG i yum-utils, zbiór przydatnych narzędzi, które na różne sposoby rozszerzają natywne funkcje yum.

yum install pygpgme yum-utils

6. Teraz utwórz plik o nazwie /etc/yum.repos.d/varnishcache_varnish5.repo, który zawiera poniższą konfigurację repozytorium.

vi /etc/yum.repos.d/varnishcache_varnish65.repo

Ważne: pamiętaj o zastąpieniu el i 7 w poniższej konfiguracji dystrybucją i wersją Linuksa:

[varnishcache_varnish65]
name=varnishcache_varnish65
baseurl=https://packagecloud.io/varnishcache/varnish65/el/7/$basearch
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/varnishcache/varnish65/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300

[varnishcache_varnish65-source]
name=varnishcache_varnish65-source
baseurl=https://packagecloud.io/varnishcache/varnish65/el/7/SRPMS
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/varnishcache/varnish65/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300

7. Teraz uruchom poniższe polecenie, aby zaktualizować lokalną pamięć podręczną Yum i zainstalować pakiet lakieru podręcznego (nie zapomnij zaakceptować klucza GPG, wpisując y lub yes podczas instalacji pakietu):

yum -q makecache -y --disablerepo='*' --enablerepo='varnishcache_varnish65'
yum install varnish 

8. Po zainstalowaniu Varnish Cache główny plik wykonywalny zostanie zainstalowany jako /usr/sbin/varnishd, a pliki konfiguracyjne lakieru będą znajdować się w >/etc/lakier/:

  • /etc/varnish/default.vcl – jest to główny plik konfiguracyjny lakieru, napisany przy użyciu języka konfiguracji Vanish (VCL).

9. Teraz uruchom usługę lakierowania, włącz jej automatyczne uruchamianie podczas uruchamiania systemu 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

10. Możesz potwierdzić, że instalacja Varnish zakończyła się pomyślnie, sprawdzając lokalizację pliku wykonywalnego Varnish i jego wersję zainstalowaną w Twoim systemie.

which varnishd
varnishd -V
Przykładowe wyjście
varnishd (varnish-6.5.1 revision 1dae23376bb5ea7a6b8e9e4b9ed95cdc9469fb64)
Copyright (c) 2006 Verdens Gang AS
Copyright (c) 2006-2020 Varnish Software

Krok 3: Skonfiguruj Nginx do pracy z pamięcią podręczną lakieru

11. W tym kroku musisz skonfigurować Nginx do współpracy z Varnish Cache. Domyślnie Nginx nasłuchuje na porcie 80, powinieneś zmienić domyślny port Nginx na 8080, aby działał za buforowaniem Varnish.

Otwórz plik konfiguracyjny Nginx /etc/nginx/nginx.conf i znajdź linię Listen 80 i zmień ją na Listen 8080 jak na serwerze blok pokazany na zrzucie ekranu poniżej.

vi /etc/nginx/nginx.conf

Uwaga: należy to zrobić we wszystkich plikach konfiguracyjnych bloków serwerów (zwykle tworzonych w /etc/nginx/conf.d/) dla witryn, które chcesz obsługiwać przez >Lakier.

12. Następnie otwórz plik konfiguracyjny usługi lakieru i znajdź parametr ExecStart, który określa port, na którym nasłuchuje Varnish, i zmień jego wartość z 6081 do 80.

systemctl edit --full  varnish

Linia powinna wyglądać tak, jak pokazano.

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

13. Następnie skonfiguruj Nginx jako serwer backendowy dla proxy Varnish w pliku konfiguracyjnym /etc/varnish/default.vcl.

vi /etc/varnish/default.vcl 

Znajdź sekcję backend i zdefiniuj adres IP hosta i port. Poniżej znajduje się domyślna konfiguracja zaplecza. Ustaw ją tak, aby wskazywała rzeczywisty serwer zawartości.

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

14. Po wykonaniu wszystkich niezbędnych konfiguracji zrestartuj Nginx HTTPD i pamięć podręczną Varnish, aby zastosować powyższe zmiany.

systemctl daemon-reload
systemctl restart nginx
systemctl restart varnish

Krok 4: Przetestuj pamięć podręczną lakieru na Nginx

15. Na koniec sprawdź, czy pamięć podręczna Varnish jest włączona i czy współpracuje z usługą Nginx, używając poniższego polecenia cURL, aby wyświetlić nagłówek HTTP.

curl -I http://localhost
Przykładowe wyjście
HTTP/1.1 200 OK
Server: nginx/1.16.1
Date: Wed, 06 Jan 2021 09:24:18 GMT
Content-Type: text/html
Content-Length: 4833
Last-Modified: Fri, 16 May 2014 15:12:48 GMT
ETag: "53762af0-12e1"
X-Varnish: 2
Age: 0
Via: 1.1 varnish (Varnish/6.5)
Accept-Ranges: bytes
Connection: keep-alive

Dodatkowe informacje można znaleźć w repozytorium Github Varnish Cache: https://github.com/varnishcache/varnish-cache

W tym samouczku wyjaśniliśmy, jak skonfigurować pamięć podręczną Varnish dla serwera HTTP Nginx w systemie CentOS 7. Skorzystaj z poniższego formularza komentarza, aby przesłać nam wszelkie zapytania lub dodatkowe pomysły.