Vyhledávání na webu

Jak nainstalovat Varnish Cache pro Apache na CentOS/RHEL 8


Varnish Cache je bezplatný open source, moderní a vysoce výkonný akcelerátor webových aplikací. Jedná se o rychlý reverzní HTTP proxy, který ukládá obsah do mezipaměti pro urychlení výkonu vašeho webového serveru tím, že ukládá webový obsah do paměti serveru – do mezipaměti. Je nakonfigurován tak, aby běžel před původním serverem, jako je webový server Apache (HTTPD).

Když klient požaduje obsah, Varnish přijme požadavek HTTP, odešle požadavek na původní server, uloží vrácené objekty do mezipaměti a odpoví na požadavek klienta. Až si klient příště vyžádá stejný obsah, Varnish jej naservíruje z mezipaměti. Tímto způsobem snižuje dobu odezvy a spotřebu šířky pásma sítě u budoucích ekvivalentních požadavků.

Varnish funguje také jako směrovač požadavku HTTP, brána firewall webových aplikací, nástroj pro vyrovnávání zatížení a další. Konfiguruje se pomocí flexibilního Varnish Configuration Language (VCL), který je rozšiřitelný pomocí Varnish Modules (známých také jako VMODs >), podporuje Edge Side Within (ESL), kompresi a dekompresi Gzip a mnoho dalšího.

V tomto článku se dozvíte, jak nainstalovat webový server Apache HTTPD a Varnish Cache 6 na nový server CentOS/RHEL 8, včetně konfigurace Lak pro spuštění před HTTPD serverem.

Předpoklady:

  • Server s instalací CentOS 8
  • Server s instalací RHEL 8 s povoleným předplatným Red Hat ve vašem systému.

Krok 1: Instalace webového serveru Apache na CentOS/RHEL 8

1. Začněte aktualizací všech nainstalovaných softwarových balíků v systému pomocí příkazu DNF.

dnf update

2. Dále spusťte následující příkaz k instalaci webového serveru Apache HTTP z úložiště AppStream.

dnf install httpd

3. Jakmile je instalace dokončena, spusťte službu httpd, povolte její automatické spouštění během spouštění systému a pomocí příkazu systemctl zkontrolujte její stav, abyste potvrdili, že je v provozu.

systemctl start httpd
systemctl enable httpd
systemctl status httpd

4. Ve výchozím nastavení CentOS/RHEL 8 obsahuje plně uzamčený firewall (pro potvrzení spusťte firewall-cmd –state). Chcete-li uživatelům umožnit přístup k webovým stránkám nebo aplikacím běžícím přes HTTP, musíte otevřít přístup ke službě HTTP ve bráně firewall a také znovu načíst nastavení brány firewall, aby se nové změny uplatnily.

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

Krok 2: Instalace Varnish Cache 6.4 na CentOS/RHEL 8

5. Nyní, když je webový server Apache spuštěný, můžete pokračovat v instalaci Varnish Cache do systému pomocí následujícího příkazu.

dnf module install varnish

6. Po úspěšné instalaci můžete ověřit verzi Varnish nainstalovanou ve vašem systému.

varnishd -V

7. Dále se hlavní spustitelný soubor nainstaluje jako /usr/sbin/varnishd. Konfigurační soubory Varnish jsou také uloženy v adresáři /etc/varnish, kde:

  • /etc/varnish/default.vcl – je hlavní konfigurační soubor laku napsaný pomocí VCL.
  • /etc/varnish/secret – je tajný soubor laku.

8. Nyní spusťte lakovací službu, prozatím povolte její automatické spouštění během spouštění systému v případě restartu serveru a zkontrolujte její stav, abyste se ujistili, že funguje následovně.

systemctl start varnish
systemctl enable varnish
systemctl status varnish

Krok 3: Konfigurace Apache pro práci s mezipamětí laku

9. Nyní je čas nakonfigurovat Varnish Cache tak, aby běžela před službou Apache. Ve výchozím nastavení je server Apache nakonfigurován tak, aby naslouchal na portu 80, což je definováno v hlavním konfiguračním souboru /etc/httpd/conf/httpd.conf.

Otevřete jej pro úpravy pomocí svého oblíbeného textového editoru.

vi /etc/httpd/conf/httpd.conf

Hledejte parametr Listen. Chcete-li spustit Varnish před serverem Apache, měli byste změnit výchozí port 80 na 8080 (nebo jakýkoli jiný port dle vašeho výběru) jako zobrazeno na následujícím snímku obrazovky.

Tento port bude později přidán jako port backendového serveru do konfiguračního souboru Varnish.

Také konfigurace virtuálního hostitele pro každou webovou stránku/aplikaci, která bude sloužit prostřednictvím Varnish, by měla být nakonfigurována tak, aby naslouchala výše uvedenému portu. 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>

Důležité: Abyste zabránili použití výchozí testovací stránky HTTP serveru Apache, zakomentujte všechny řádky v souboru /etc/httpd/conf.d /welcome.confnebo soubor jednoduše smažte.

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

10. Dále otestujte syntaxi konfigurace httpd na případné chyby. Pokud je vše v pořádku, restartujte službu httpd a použijte nové změny.

httpd -t
systemctl restart httpd

Konfigurace laku pro Systemd

11. Chcete-li nasadit Varnish před HTTPD, stačí jej nakonfigurovat tak, aby naslouchal požadavkům klientů na výchozím portu HTTP 80, jak je vysvětleno níže.

Všimněte si, že ve verzi Varnish Cache 6.0 a vyšší musíte nastavit, aby port lak server naslouchal v souboru služby Varnish pro systemd. Nejprve jej otevřete pro úpravy.

systemctl edit --full  varnish

Vyhledejte řádek ExecStart a poté změňte hodnotu přepínače -a (který určuje, jak lak naslouchá adrese a portu) z :6081 na :80, jak je uvedeno na následujícím snímku obrazovky.

Důležité je, že pokud nezadáte adresu, varnishd bude naslouchat na všech dostupných rozhraních IPv4 a IPv6 aktivních na serveru.

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

Uložte změny do souboru a ukončete.

Konfigurace serverů Varnish Backend pomocí VCL

12. Nyní musíte nakonfigurovat zdrojový server, známý v terminologii Varnish jako backend. Je to server, který rozumí HTTP, se kterým Varnish mluví, aby načetl obsah – v tomto případě httpd. Konfiguruje se v hlavním konfiguračním souboru /etc/varnish/default.vcl.

vi /etc/varnish/default.vcl 

K dispozici je výchozí backendová konfigurační sekce nazvaná výchozí. Můžete změnit „výchozí “ na server1 (nebo libovolný název dle vašeho výběru, aby vyhovoval vašim standardům prostředí). Ve výchozím nastavení parametr host ukazuje na localhost za předpokladu, že backend server běží na localhost.

Poté nastavte port na 8080 (port, který jste definovali v konfiguračním souboru virtuálního hostitele Apache), jak je znázorněno na snímku obrazovky.

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

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

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

Uložte soubor a zavřete jej.

13. Po provedení všech nezbytných změn týkajících se Varnish znovu načtěte konfiguraci správce systemd, aby odrážela nové změny v souboru služby Varnish, a také restartujte službu Lak k aplikaci celkových změn.

systemctl daemon-reload
systemctl restart varnish

14. V tuto chvíli by Varnish a Apache měly naslouchat na portu 80 a 8080, v tomto pořadí. Můžete to potvrdit pomocí příkazu socket statistics.

ss -tpln

Krok 4: Testování mezipaměti laku a nastavení Apache

14. Chcete-li otestovat nastavení Varnish Cache-HTTPD, otevřete webový prohlížeč a procházejte pomocí serveru IP nebo FQDN jak je znázorněno na následujícím snímku obrazovky.

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

Poté zkontrolujte, zda se webové stránky zobrazují prostřednictvím Vyrovnávací paměti laku následujícím způsobem. Zkontrolujte záhlaví HTTP kliknutím pravým tlačítkem na zobrazenou webovou stránku, výběrem možnosti Prozkoumat otevřete vývojářské nástroje, poté klikněte na kartu Síť a znovu načtěte stránku. Poté vyberte požadavek na zobrazení záhlaví HTTP a potvrďte to, jak je znázorněno na následujícím snímku obrazovky.

Případně to můžete ověřit spuštěním následujícího příkazu curl.

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

Užitečné programy Varnish Cache Utility

15. Na závěr tohoto průvodce se podíváme na některé užitečné programy, které distribuce Varnish Cache obsahuje. Zahrnují nástroje pro správu mezipaměti laku, zobrazení podrobných záznamů protokolu a zobrazení statistik výkonu laku, jak je popsáno níže.

lakadm

První je varnishadm, který se používá ke správě spuštěné instance Varnish. Vytvoří připojení rozhraní příkazového řádku k lak. Může ovlivnit spuštěnou instanci Varnish spuštěním a zastavením varnishd, změnou konfiguračních parametrů, opětovným načtením VCL, výpisem backendů a dalšími.

varnishadm
> backend.list

Pro více informací si přečtěte manlakadm.

laklog

Dalším programem je varnishlog, který se používá pro přístup k datům specifickým pro požadavky (tj. informace o konkrétních klientech a požadavcích). Poskytuje velké množství informací, proto je obvykle nutné je filtrovat.

varnishlog

Pro více informací si přečtěte manlaklog.

lakstat

Máme také varnishstat (statistiky laků), který se používá k přístupu k celkovým statistikám, jako je počet celkových požadavků, počet objektů a další.

varnishstat

Pro více informací si přečtěte manlakstat.

laková deska

Pak tu máme varnishtop, což je nástroj, který čte protokol Varnish a předkládá průběžně aktualizovaný seznam nejčastěji se vyskytujících položek protokolu.

varnishtop 

Pro více informací si přečtěte muž lak.

lakýrník

Dalším užitečným nástrojem je nástroj varnishhist (historie laku), který čte protokoly Varnish a představuje průběžně aktualizovaný histogram zobrazující rozložení posledních N požadavků podle jejich zpracovává se.

varnishhist

Pro více informací si přečtěte manlakhist.

Tady to máš! Úspěšně jste nasadili Varnish Cache k urychlení obsahu webových aplikací poskytovaných pomocí Apache HTTP Serveru na CentOS/RHEL 8.

Máte-li k tomuto tématu nějaké dotazy nebo myšlenky, které byste chtěli sdílet, použijte níže uvedený formulář pro zpětnou vazbu. Další informace naleznete v dokumentaci mezipaměti Varnish Cache 6.0.

Pokud chcete na svém webu povolit HTTPS, přečtěte si náš další článek, který ukáže, jak povolit SSL/TLS pro mezipaměť laku pomocí Hitch na CentOS/RHEL 8.