14 března, 2022

Jak nastavit lak cache server-Swapps

webové stránky s vysokým provozem musí sloužit stejný obsah několikrát různým uživatelům. V závislosti na vaší aplikaci může být opravdu drahé (zdroje mluví) zpracovat veškerou logiku aplikace pokaždé, když uživatel požaduje webovou stránku. Zde je místo, kde Server caching přichází, stačí uložit dočasnou kopii obsahu v paměti a slouží tento obsah všem uživatelům.

lak je skvělý pro ukládání obsahu do mezipaměti na straně serveru. V podstatě byste měli cache HTML obsah, ale můžete také cache soubory: CSS, JS, obrázky, dokumenty.

Zní to dobře, ale pravdou je, že ve výchozím nastavení lak nedělá nic, nebo alespoň byste mohli plýtvat výhodami tohoto softwaru a dokumentace nepomůže,takže jsem napsal tento článek, takže můžete získat co největší užitek z laku. Vysvětlím, kde a jak nakonfigurovat, otestovat a nasadit Server mezipaměti laku pro vaši aplikaci.

pro demonstrační účely řekněme, že máme 2 serverové instance pro naše servery aplikací a mezipaměti s následujícími lokálními IP adresami:

  • App Server: 192.168.1.2
  • Cache Server: 192.168.1.3

nainstalovat lak Cache Server

pro tento účel článků, budeme instalovat Ubuntu server 16.04 s lakem 4.0. Chcete-li nainstalovat lak, stačí spustit:

sudo apt install varnish

nainstaluji lak 4.0 a od této chvíle budete věnovat zvláštní pozornost 2 konkrétním souborům:/etc/default/varnisha /etc/varnish/default.vcl

konfigurace backendu

první věc, kterou musíte udělat, je nakonfigurovat backend nebo instruovat lak, kde bude webová aplikace žít:

  • jaký je název hostitele nebo IP adresa?
  • co je port?

Chcete-li definovat, že musíte jít a aktualizovat soubor /etc/varnish/default.vcla najít následující část, která bude nakonfigurována pro náš příklad účel, jako je tento:

backend default { .host = "192.168.1.2"; .port = "8080"; .first_byte_timeout = 60s; .connect_timeout = 300s;}

instruuje lak, aby poslouchal aplikaci běžící na IP 192.168.1.2 a portu 8080.

nakonfigurujte démona laku

první věc, kterou musíte definovat, kde bude lak běžet. Necháme jej běžet na výchozím portu 6081. Je velmi běžné spouštět tohoto démona na portech 80 a 443 pro SSL, ale raději dáme NGINX dopředu a necháme ho, aby se zúčastnil provozu.

pokud jde o paměť, instalace prázdného laku poběží s 256MB paměti, což by mohlo stačit pro některé aplikace, ale pro aplikace s vysokým provozem to nemusí stačit, a více, pokud jste rezervovali vyhrazený server pouze pro mezipaměť.

můžete to změnit na:

/etc/default/varnish

najděte následující část:

DAEMON_OPTS="-a :6081 \-T localhost:6082 \-f /etc/varnish/default.vcl \-S /etc/varnish/secret \-s malloc,256m"

Chcete-li aktualizovat množství paměti RAM, změníte poslední řádek, kde se říká 256m a aktualizujete požadovanou hodnotu, v mém případě chci věnovat 3GB paměti RAM laku, takže blok bude vypadat:

DAEMON_OPTS="-a :6081 \-T localhost:6082 \-f /etc/varnish/default.vcl \-S /etc/varnish/secret \-s malloc,3G"

ověřte, že běží se správnou konfigurací

potvrďte, že běží podle očekávání, zkontrolujte proces ps aux | grep varnisha měli byste vidět něco jako:

/usr/sbin/varnishd -j unix,user=vcache -F -a :6081 -T :6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,3G

Oprava lakového spouštěcího démona v některých instalacích Ubuntu

zjistili jsme chybu, kdy služba nedodržuje pokyny definované v souboru laku a možná budete muset upravit spouštěcí službu.

Chcete-li to provést, otevřete a upravte soubor

/lib/systemd/system/varnish.service

a uvidíte něco takového:

Description=Varnish HTTP acceleratorDocumentation=https://www.varnish-cache.org/docs/4.1/ man:varnishdType=simpleLimitNOFILE=131072LimitMEMLOCK=infinityExecStart=/usr/sbin/varnishd -j unix,user=vcache -F -a :6081 -T :6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,256MExecReload=/usr/share/varnish/reload-vclProtectSystem=fullProtectHome=truePrivateTmp=truePrivateDevices=trueWantedBy=multi-user.target

aby to fungovalo, budete muset aktualizovat sekci uvnitř řádku ExecStart a nahradit ji pro požadovanou konfiguraci:

ExecStart=/usr/sbin/varnishd -j unix,user=vcache -F -a :6081 -T :6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,3G

poté, co jste s tím hotovi, musíte znovu načíst démona služby: systemctl daemon-reload a poté restartujte lak.

jak nakonfigurovat vymazání mezipaměti

existují 2 způsoby, jak vymazat mezipaměť laku:

  • restartujte službu laku.
  • odeslat požadavek na očištění na lak serveru.

restartovat lak je to jen o restartování služby:

sudo service varnish restart

ale to, co opravdu potřebujeme, je být schopen odeslat požadavek na očištění z aplikačního serveru. Toho lze dosáhnout instrukcí serveru, aby vyčistil konkrétní cestu nebo všechny z nich. Při použití CURL, požadavek bude vypadat:

curl -X PURGE http://192.168.1.3:6181

ve výchozím nastavení lak neumožňuje požadavek na vyčištění z externího serveru, takže je třeba povolit požadavky z aplikačního serveru. Chcete-li tak učinit, přejděte a upravte /etc/varnish/default.vcla najděte sekci očištění, kde je třeba přidat IP adresu app serveru:

acl purge { "localhost"; "127.0.0.1"; "192.168.1.2"/24;}

jak ladit vyčištění

budete muset ověřit, že vše funguje správně. K tomu můžete použít následující příkaz:

varnishlog -g request -q 'ReqMethod eq "PURGE"'

pak můžete poslat žádost o očištění a měli byste vidět něco takového, abyste potvrdili, že byla přijata žádost o očištění:

* << Request >> 1179851- Begin req 1179850 rxreq- ReqStart 192.168.195.197 39700- ReqMethod PURGE- ReqURL /.*- ReqProtocol HTTP/1.1- ReqHeader Host: swapps.com- ReqHeader User-Agent: W3 Total Cache- ReqHeader Connection: close- ReqHeader X-Forwarded-For: 192.168.195.197- VCL_call RECV- Timestamp Process: 1531199642.768541 0.000094 0.000094- RespHeader Date: Tue, 10 Jul 2018 05:14:02 GMT- RespHeader Server: Varnish- RespHeader X-Varnish: 1179851- RespProtocol HTTP/1.1- RespStatus 200- RespReason OK- RespReason Purged- End

stav 200 OK znamená, že všechno šlo dobře a lak vymazal mezipaměť pro požadovanou adresu URL a měli byste mít vše, co potřebujete k zahájení ukládání do mezipaměti na vašem serveru.

dalším krokem, pokud jste tak neučinili, je nakonfigurovat pravidla, jaký obsah chcete ukládat do mezipaměti a který Ne, ale to je téma pro jiný blogový příspěvek a bude velmi záviset na typu použité aplikace, rámce nebo CMS.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.