Wyszukiwanie w witrynie

Zainstaluj Varnish Cache 5.2, aby zwiększyć wydajność Apache w CentOS 7


Varnish Cache (powszechnie znany jako Varnish) to popularny akcelerator HTTP typu „reverse-proxy” o otwartym kodzie źródłowym, przeznaczony do przyspieszania serwerów internetowych. Został zaprojektowany z myślą o nadmiernie wykorzystywanych punktach końcowych API, a także o dynamicznych witrynach, które obsługują ogromną zawartość i generują duży ruch.

Zasadniczo pomaga zmniejszyć obciążenie procesora; obsługuje równoważenie obciążenia na serwerach WWW i umożliwia przeglądarce internetowej szybkie ładowanie witryn w wyniku przechowywania pamięci podręcznej w pamięci RAM. Korzysta z niego wiele dużych firm, w tym Facebook, Twitter i Wikipedia, żeby wymienić tylko kilka.

Wymagania

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

W tym artykule wyjaśnię, jak zainstalować i używać Varnish Cache 6.5 jako nakładki na serwer WWW Apache w CentOS 7 ( działa również na RHEL 7).

Krok 1: Zainstaluj serwer WWW Apache na CentOS 7

1. Najpierw zainstaluj serwer Apache HTTP z domyślnych repozytoriów oprogramowania CentOS, korzystając z menedżera pakietów YUM w następujący sposób.

yum install httpd

2. Po zainstalowaniu Apache uruchom go na chwilę i włącz automatyczne uruchamianie przy starcie systemu.

systemctl start httpd
systemctl enable httpd
systemctl status httpd

3. Następnie zaktualizuj reguły zapory systemowej, aby zezwolić na pakiety przychodzące na porcie 80, używając poniższych poleceń.

firewall-cmd --zone=public --permanent --add-service=http
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_varnish65.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 Apache do pracy z pamięcią podręczną Varnish

11. Teraz skonfiguruj Apache do pracy w połączeniu z Varnish Cache. Domyślnie Apache nasłuchuje na porcie 80, musisz zmienić domyślny port HTTPD na 8080 – dzięki temu HTTPD będzie działać za buforowaniem Varnish.

Możesz użyć polecenia sed, aby zmienić port 80 na 8080, jak pokazano.

sed -i "s/Listen 80/Listen 8080/" /etc/httpd/conf/httpd.conf

Uwaga: musisz także zmienić port w konfiguracji hosta wirtualnego dla każdej witryny, którą chcesz obsługiwać za pośrednictwem Varnish. 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>

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

systemctl edit --full  varnish

Po zakończeniu konfiguracja powinna wyglądać tak.

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

13. Następnie skonfiguruj Apache 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";
}

Jeśli Twój serwer backendowy działa na innym serwerze o adresie 10.42.1.10, parametr host powinien wskazywać ten adres IP.

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

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

systemctl daemon-reload
systemctl restart httpd
systemctl restart varnish

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

15. Na koniec sprawdź, czy Varnish jest włączony i współpracuje z usługą HTTPD, używając poniższego polecenia cURL, którego można użyć do wyświetlenia nagłówka HTTP.

curl -I http://localhost
Przykładowe wyjście
HTTP/1.1 200 OK
Date: Wed, 06 Jan 2021 08:36:07 GMT
Server: Apache/2.4.6 (CentOS)
Last-Modified: Thu, 16 Oct 2014 13:20:58 GMT
ETag: "1321-5058a1e728280"
Accept-Ranges: bytes
Content-Length: 4897
Content-Type: text/html; charset=UTF-8
X-Varnish: 131085
Age: 0
Via: 1.1 varnish (Varnish/6.5)
Connection: keep-alive

Aby uzyskać więcej informacji, sprawdź repozytorium Github Varnish Cache: https://github.com/varnishcache/varnish-cache

W tym samouczku wyjaśniliśmy, jak skonfigurować serwer proxy Varnish Cache 6.5 dla serwera Apache HTTP w CentOS 7. Jeśli masz jakieś pytania lub dodatkowe pomysły, którymi chcesz się podzielić, skorzystaj z poniższego formularza opinii, aby do nas napisać .