Vyhledávání na webu

Nainstalujte Varnish Cache 5.2, abyste zvýšili výkon Apache na CentOS 7


Varnish Cache (běžně známý jako Varnish) je open-source, populární reverzní proxy HTTP akcelerátor určený ke zrychlení webových serverů. Je navržen pro nadměrně využívané koncové body API a také pro dynamické weby, které poskytují masivní obsah a mají vysokou návštěvnost.

V zásadě pomáhá snížit zátěž CPU; podporuje vyrovnávání zátěže na webových serverech a umožňuje webovému prohlížeči rychle načítat stránky v důsledku uložení mezipaměti v paměti RAM. Používá jej řada velkých společností včetně Facebooku, Twitteru a Wikipedie, abychom zmínili alespoň některé.

Požadavky

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

V tomto článku vysvětlím, jak nainstalovat a používat Varnish Cache 6.5 jako front-end pro webový server Apache v CentOS 7 ( funguje také na RHEL 7).

Krok 1: Nainstalujte webový server Apache na CentOS 7

1. Nejprve nainstalujte Apache HTTP server z výchozích softwarových úložišť CentOS pomocí správce balíčků YUM následovně.

yum install httpd

2. Po instalaci Apache jej prozatím spusťte a povolte jeho automatické spouštění při startu systému.

systemctl start httpd
systemctl enable httpd
systemctl status httpd

3. Dále aktualizujte 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-service=http
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_varnish65.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 VCL (vanish configuration language).

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 Apache pro práci s mezipamětí laku

11. Nyní nakonfigurujte Apache, aby fungoval ve spojení s mezipamětí Varnish Cache. Ve výchozím nastavení Apache naslouchá na portu 80, musíte změnit výchozí port HTTPD na 8080 – tím zajistíte, že HTTPD bude běžet za ukládáním do mezipaměti Varnish.

Pomocí příkazu sed můžete změnit port 80 na 8080, jak je znázorněno.

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

Poznámka: Také je třeba změnit port v konfiguraci virtuálního hostitele pro každou webovou stránku, kterou chcete zobrazovat prostřednictvím Varnish. Zde je konfigurace pro náš testovací web (/etc/httpd/conf.d/tecmint.lan.conf).

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

12. Dále otevřete konfigurační soubor laku systemd a najděte parametr ExecStart, který určuje port, na kterém Varnish naslouchá, a změňte jeho hodnotu z 6081 na 80, jak je znázorněno na snímku obrazovky.

systemctl edit --full  varnish

Po dokončení by konfigurace měla vypadat takto.

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

13. Dále nastavte Apache 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";
}

Pokud váš backend server běží na jiném serveru s adresou 10.42.1.10, měl by parametr hostitele ukazovat na tuto IP adresu.

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

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

systemctl daemon-reload
systemctl restart httpd
systemctl restart varnish

Krok 4: Otestujte mezipaměť laku na Apache

15. Nakonec otestujte, zda je Varnish povolen a zda funguje se službou HTTPD pomocí příkazu cURL níže, který lze použít k zobrazení hlavičky HTTP.

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

Pro více informací se podívejte na Varnish Cache Github Repository: https://github.com/varnishcache/varnish-cache

V tomto tutoriálu jsme vysvětlili, jak nastavit proxy Varnish Cache 6.5 pro server Apache HTTP na CentOS 7. V případě, že máte nějaké dotazy nebo další nápady ke sdílení, napište nám pomocí níže uvedeného formuláře zpětné vazby. .