Vyhledávání na webu

Jak nainstalovat Varnish Cache 5.2 pro Nginx na CentOS 7


Varnish Cache (také označovaná jako Varnish) je open-source, vysoce výkonný HTTP akcelerátor určený pro zrychlení webových serverů. V našich posledních článcích jsme vysvětlili, jak nastavit mezipaměť Varnish pro Apache na CentOS 7 a CentOS 8.

V tomto článku vám ukážeme, jak nainstalovat a používat Varnish Cache jako front-end k serveru Nginx HTTP v CentOS 7. Tato příručka by měla fungovat i na RHEL 7.

Požadavky

  1. CentOS 7 s nainstalovaným Apache
  2. CentOS 7 se statickou IP adresou

Krok 1: Nainstalujte webový server Nginx na CentOS 7

1. Začněte instalací serveru Nginx HTTP z výchozích softwarových úložišť CentOS pomocí správce balíčků YUM následovně.

yum install nginx

2. Po dokončení instalace spusťte prozatím službu Nginx a povolte její automatické spouštění při spouštění systému.

systemctl start nginx
systemctl enable nginx
systemctl status nginx

3. Nyní upravte pravidla brány firewall systému tak, aby povolovala příchozí pakety na portu 80 pomocí příkazů níže.

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: Nainstalujte mezipaměť Varnish na CentOS 7

4. Nyní jsou k dispozici předkompilované balíčky RPM pro nejnovější verzi Varnish Cache 6 (tj. 6.5 v době psaní tohoto článku). musíte přidat oficiální úložiště Varnish Cache.

Předtím musíte povolit úložiště EPEL pro instalaci několika závislých balíčků, jak je znázorněno.

yum install -y epel-release

5. Dále nainstalujte pygpgme, balíček pro zpracování GPG podpisů a yum-utils, což je sbírka užitečných nástrojů, které různými způsoby rozšiřují nativní funkce yum.

yum install pygpgme yum-utils

6. Nyní vytvořte soubor s názvem /etc/yum.repos.d/varnishcache_varnish5.repo, který obsahuje níže uvedenou konfiguraci úložiště.

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

Důležité: Nezapomeňte nahradit el a 7 v níže uvedené konfiguraci vaší distribucí a verzí Linuxu:

[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. Nyní spusťte příkaz níže pro aktualizaci místní mezipaměti yum a nainstalujte balíček mezipaměti laku (nezapomeňte přijmout klíč GPG zadáním y nebo yes při instalaci balíčku):

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

8. Po instalaci Varnish Cache bude hlavní spustitelný soubor nainstalován jako /usr/sbin/varnishd a konfigurační soubory laku jsou umístěny v /etc/lak/:

  • /etc/varnish/default.vcl – toto je hlavní konfigurační soubor laku, je napsán pomocí jazyka vanish configuration language (VCL).

9. Nyní spusťte lakovací službu, povolte její automatické spouštění během spouštění systému a ověřte její stav, abyste se ujistili, že je v provozu následujícím způsobem.

systemctl start varnish
systemctl enable varnish
systemctl status varnish

10. Úspěšnou instalaci Varnish můžete potvrdit zobrazením umístění spustitelného souboru Varnish a verze nainstalované ve vašem systému.

which varnishd
varnishd -V
Ukázkový výstup
varnishd (varnish-6.5.1 revision 1dae23376bb5ea7a6b8e9e4b9ed95cdc9469fb64)
Copyright (c) 2006 Verdens Gang AS
Copyright (c) 2006-2020 Varnish Software

Krok 3: Nakonfigurujte Nginx pro práci s mezipamětí laku

11. V tomto kroku musíte nakonfigurovat Nginx tak, aby fungoval s mezipamětí Varnish Cache. Ve výchozím nastavení Nginx naslouchá na portu 80, měli byste změnit výchozí port Nginx na 8080, aby běžel za ukládáním do mezipaměti Varnish.

Otevřete konfigurační soubor Nginx /etc/nginx/nginx.conf a najděte řádek listen 80 a změňte jej na listen 8080 jako na serveru blok zobrazený na snímku obrazovky níže.

vi /etc/nginx/nginx.conf

Poznámka: Toto by mělo být provedeno ve všech konfiguračních souborech bloků serveru (obvykle vytvořených pod /etc/nginx/conf.d/) pro webové stránky, které chcete obsluhovat prostřednictvím Lak.

12. Dále otevřete konfigurační soubor služby lakování a najděte parametr ExecStart, který určuje port, na kterém Varnish naslouchá, a změňte jeho hodnotu z 6081 na 80.

systemctl edit --full  varnish

Čára by měla vypadat jako na obrázku.

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

13. Dále nastavte Nginx jako backend server pro Varnish proxy v konfiguračním souboru /etc/varnish/default.vcl.

vi /etc/varnish/default.vcl 

Najděte sekci backend a definujte IP hostitele a port. Níže je výchozí konfigurace backendu, nastavte ji tak, aby ukazovala na váš skutečný obsahový server.

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

14. Po provedení všech nezbytných konfigurací restartujte Nginx HTTPD a mezipaměť Varnish, aby se projevily výše uvedené změny.

systemctl daemon-reload
systemctl restart nginx
systemctl restart varnish

Krok 4: Otestujte mezipaměť laku na Nginx

15. Nakonec otestujte, zda je povolena mezipaměť Varnish a zda funguje se službou Nginx pomocí příkazu cURL níže, abyste zobrazili hlavičku HTTP.

curl -I http://localhost
Ukázkový výstup
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

Další informace naleznete v repozitáři Varnish Cache Github: https://github.com/varnishcache/varnish-cache

V tomto tutoriálu jsme vysvětlili, jak nastavit mezipaměť Varnish pro server Nginx HTTP na CentOS 7. Pomocí formuláře pro komentáře níže nám pošlete jakékoli dotazy nebo další nápady.