Zrychlete rychlost svého webu pomocí Fastest Cache – Cache Varnish

Procédure

Proč urychlit načítání vašeho webu? 

Je dobré vědět, že rychlost načítání vašeho webu je zásadní pro zajištění jeho úspěchu. Například pro firmu to vytváří první dojem na její návštěvníky. Navíc příliš dlouhé načítání může mít dopad na SEO vašeho webu ve vyhledávačích a neumožní dostatečnou viditelnost, aby mohl fungovat.

Neexistuje žádný limit, který by se neměl překročit, pokud jde o načítání vašich webových stránek. Nicméně doba načítání většiny webových stránek je kratší než tři sekundy.

Co je Fastest Cache a k čemu slouží?

Nástroj Fastest Cache je systém navržený a vyvinutý společností LWS, který umožňuje optimalizovat výkon načítání vašeho webu díky použití mechanismů page cache, nastavených na úrovni webového serveru. Nástroj kombinuje technologie poskytované NGINX a Varnish.

NGINX je webový server orientovaný na výkon, který umožňuje zpracovat mnohem více požadavků než Apache (viz náš blogový článek s názvem „Apache VS Nginx : Test de performance”). Používá se hlavně ve Fastest Cache k zajištění zabezpečeného přístupu přes https:// k vašemu webu, k eliminaci škodlivých HTTP požadavků (viz LWS Protect) a k směrování HTTP požadavků na cache servery Varnish.

Varnish je HTTP služba implementující mechanismus page cache, který umožňuje ukládat výsledek HTTP požadavku do paměti.

Při správném nastavení umožňuje NGINX obsloužit více požadavků na vašem webu a Varnish zároveň zrychluje dobu načítání stránky a snižuje spotřebu CPU i paměti.

Jak služba Fastest Cache funguje?

1. Fungování bez cache

Pro lepší pochopení si nejprve ukážeme, jak to probíhá bez cache pluginu, aby návštěvník mohl zobrazit váš web.

Zrychlete rychlost svého webu pomocí Fastest Cache – Cache Varnish
Zpracování HTTP požadavku bez Fastest Cache

1. Návštěvník požádá webový server o stránku. Příklad: index.php

2. Webový server provede potřebná spuštění skriptů (PHP, Perl, NodeJS, …)

3. Webový server obdrží výsledek spuštění

4. Webový server odešle HTML stránku vzniklou z výsledku spuštění skriptu

2. Fungování s modulem Fastest Cache

Když je Fastest Cache aktivován, cache server je vložen mezi návštěvníka a webový server.

Cílem je snížit počet potřebných spuštění skriptů tím, že se výsledek spuštění uchová v paměti pro další požadavky vyžadující stejnou odpověď. To umožňuje nespouštět stejný skript opakovaně, aby se dosáhlo stejného výsledku.

Tím eliminujeme čekací dobu na spuštění skriptu při načítání stránky a zároveň šetříme prostředky použité při spuštění skriptu.

Zrychlete rychlost svého webu pomocí Fastest Cache – Cache Varnish
Zpracování HTTP požadavku s Fastest Cache

1. Návštěvník požádá webový server o stránku. Příklad: index.php
2. Fastest Cache ověří, zda již byla stránka vygenerována a uložena v cache paměti

  • Pokud ano, stránka je návštěvníkovi přímo vrácena bez nutnosti přístupu k webové službě a bez spuštění skriptu
  • Pokud ne, je stránka vyžádána ke vygenerování na webové službě, což vyústí ve spuštění skriptu (PHP, NodeJS, Perl, Ruby, …).

3. Jakmile je stránka vygenerována, Fastest Cache určí, zda může být stránka uložena v cache (prostřednictvím hlaviček, URL, …)

  • Pokud ano, stránka je uložena v cache paměti a vrácena návštěvníkovi
  • Pokud ne, stránka je uložena v microcache paměti (cache paměť s krátkou dobou platnosti) a vrácena návštěvníkovi

Je vidět, že když je stránka uložena v cache paměti, zpracování webovým serverem i spuštění skriptu se vynechá.

Cacheable, non cacheable a microcache

Když webová služba poskytne novou odpověď Fastest Cache, je tato odpověď analyzována, aby se určilo, zda má být uložena v cache paměti pro budoucí použití.

Některý obsah stránek by neměl být ukládán do cache paměti, například výsledek registračního formuláře, výsledek platební stránky, … protože obsahují údaje, které se mění podle uživatelů a událostí.

Pro určení, zda může být stránka uložena do cache či nikoli, používá Fastest Cache několik mechanismů:

  • HTTP požadavky používající jiné HTTP metody než HEAD a GET budou systematicky vyloučeny z cache.
  • HTTP požadavky obsahující cookies budou také vyloučeny. Cookies používané Google Analytics, XiTi, DoubleClick, Quant Capital, AddThis a Cloudflare jsou před detekcí odstraněny. Stejně tak jsou automaticky spravovány cookies související se známými CMS, pokud režim cache odpovídá danému CMS.
  • HTTP požadavky chráněné hesly .htaccess
  • Pokud odpověď webového serveru obsahuje instrukce cache prohlížeče (hlavička cache-control), Fastest Cache je automaticky zohlední a stránka bude uložena v cache paměti.

Pokud je HTTP požadavek typu GET a není chráněn přes .htaccess ani neobsahuje cookies a nemá přesnou instrukci cache prohlížeče, je uložen do microcache na několik sekund.

Microcache tak umožňuje kompenzovat problémy se špičkami požadavků na stránkách, které nejsou v cache. Například to pomáhá řešit přetížení a zpomalení v případě vlny vyhledávání stejného produktu v e‑shopu.

Představení rozhraní a aktivace služby

Fastest Cache je v cPanelu zobrazen jako ikona v sekci „Performance“.

Zrychlete rychlost svého webu pomocí Fastest Cache – Cache Varnish

Po otevření rozhraní jsou v seznamu zobrazeny hlavní doména, dodatečné domény a subdomény.

Zrychlete rychlost svého webu pomocí Fastest Cache – Cache Varnish

  • Sloupec „Stav cache“ zobrazuje stav aktivace cache. Pokud je na „Aktivováno“, je cache aktivní.
  • Tlačítko „Vymazat cache“ umožňuje odstranit všechna data v cache pro konkrétní doménu.
  • Tlačítko „Deaktivovat cache“ umožňuje vypnout ukládání do cache.
  • Tlačítko „Aktivovat cache“ umožňuje ukládání do cache zapnout.
  • Tlačítko „Změnit režim fungování“ umožňuje upravit chování cache systému. Tyto režimy budou vysvětleny hned poté.

Různé režimy cache

Ve výchozím nastavení cache systém používá režim „Obecné použití“, který je vhodný pro obecné využití. Existují však i další režimy:

Režim vývojář : je totožný s deaktivací cache, umožňuje obejít cache systém během vývojových období.
WordPress : režim cache vhodnější pro WordPress, kde je zlepšena správa složek (wp-content, wp-admin, …) a cookies specifických pro WordPress.
Prestashop : režim cache vhodnější pro Prestashop, kde je zlepšena správa složek a cookies.

Zrychlete rychlost svého webu pomocí Fastest Cache – Cache Varnish

Vymazání cache

Kromě rozhraní cPanel, které umožňuje cache vymazat, je možné cache vymazat ručně z terminálu SSH cPanel účtu nebo ze skriptu umístěného na serveru.

Spouštěné z vašeho hostingu (PHP skript vašeho webu, Cron úloha nebo SSH terminál), tyto metody nevyžadují ani API token, ani přihlašovací údaje : Fastest Cache přímo přijímá HTTP metody PURGE a FULLPURGE. Token lwsapitoken se týká pouze LWS Cache, cache LWS Panelu (viz tuto nápovědu).

1. Vymazání cache pomocí cURL

Vymazat cache jedné stránky:

⌨ Příkaz
curl -X 'PURGE' http://mon-site-web.com/mapage.php

Tímto se vymaže cache URL http://mon-site-web.com/mapage.php.

Vymazat cache složky:

⌨ Příkaz
curl -X PURGE -H 'X-Purge-Method: regex' 'https://mon-site-web.com/wp-content/uploads/.*'

Tímto se vymažou všechny cache adresy URL začínající na 'http://mon-site-web.com/wp-content/uploads/'

Vymazat cache webu

⌨ Příkaz
curl -X 'FULLPURGE' http://mon-site-web.com

U všech těchto tří příkazů jsou možné dva návraty:

HTTP kód 200 : vymazání proběhlo úspěšně bez chyby.

HTTP kód 405 : vymazání není povoleno nebo neproběhlo.

2. Automatické vymazání pomocí PHP skriptu (Cron úloha)

Následující skript vymaže cache celého webu, nebo jen několika stránek. Zkopírujte jej do souboru purge-cache.php ve vašem hostingu a poté zadejte svou doménu do $site. Pokud chcete vymazat jen některé stránky, uveďte je v $pages.

Kód
 $methode,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_CONNECTTIMEOUT => 5,
        CURLOPT_TIMEOUT        => 20,
    ]);
    curl_exec($ch);
    $code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);
    return $code;
}

if (empty($pages)) {
    echo date('Y-m-d H:i:s') . ' úplné vymazání : HTTP ' . purger('FULLPURGE', $site) . PHP_EOL;
} else {
    foreach ($pages as $page) {
        echo date('Y-m-d H:i:s') . ' ' . $page . ' : HTTP ' . purger('PURGE', $site . $page) . PHP_EOL;
    }
}
// HTTP 200 : vymazání provedeno. HTTP 405 : vymazání odmítnuto nebo neprovedeno.

Pro automatické spouštění, například každou noc, vytvořte Cron úlohu, která tento soubor spustí pomocí PHP. Pokud chcete jednoduše vymazat celou cache, může Cron úloha spustit také přímo:

⌨ Příkaz
curl -s -X FULLPURGE https://mon-site-web.com

3. Vymazání pomocí pluginu nebo modulu

Většina pluginů/modulů s integrací Varnish je kompatibilní s interním mechanismem vymazání Fastest Cache.

Zde je několik otestovaných a ověřených kompatibilních pluginů:

Detekce HTTPS a přesměrování

Stav HTTPS a porty uvedené na Apache jsou upravovány modulem mod_fastestcache integrovaným v Apache. Obvykle tedy není nutné provádět žádné změny.

Pokud však detekce HTTPS nefunguje s Fastest Cache, může to způsobit nekonečné smyčky přesměrování. V takovém případě bude nutné upravit detekční údaje.

Důvěryhodné HTTP hlavičky pro detekci jsou:

  • X-Forwarded-Proto
  • X-Forwarded-Port

Pokud tedy používáte následující HTTPS přesměrování s .htaccess:

Kód
RewriteEngine On 
RewriteCond %{SERVER_PORT} ^80$
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]

a nefunguje to, můžete proměnnou SERVER_PORT nahradit X-Forwarded-Proto :

Kód
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTPS} !on
RewriteRule ^(.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R]

CloudFlare a další CDN

CDN typu CloudFlare obsahují filtry HTTP požadavků, které by mohly blokovat požadavky „PURGE“ a „FULLPURGE“ používané Fastest Cache k vymazání cache.

Doporučujeme používat pouze jednu úroveň cache, tedy buď Cloudflare, nebo Fastest Cache.

Jejich kombinované použití může způsobit nežádoucí chování. Vyzkoušejte obě možnosti a použijte tu, která nejlépe vyhovuje vašim potřebám.

help.lws.net/a/1515
Byl pro vás tento článek užitečný?

Ano

Ne

Přečteno 23 517×

Děkujeme! Neváhejte se ptát na naši dokumentaci, pokud chcete více informací, a pomozte nám ji zlepšit.

Podobné články

Otázky k článku 2

Položit otázku
raf
19. 9. 2022
Bonjour vous indiquez à la fin de votre article, qu’il faut utiliser un seul niveau de cache, donc je ne comprend pas si on peut utiliser cloudflare avec Fastest cache au niveau du serveur ou pas ?
fabrice-LWS Oficiální odpověď
20. 9. 2022
Bonjour, il est préférable d'utiliser qu'un système de cache afin de ne pas rencontrer de problème. L'utilisation de plusieurs systèmes de cache différents est souvent contre-productif et peut engendrer différents problèmes comme le blocage de certaines requêtes telles que celles permettant de purger le cache d'une page de votre site ou toutes les pages.
Byla pro vás tato odpověď užitečná?
raf
19. 9. 2022
Et au niveau du plug-in wordpress WP Rocket : est il compatible ?
fabrice-LWS Oficiální odpověď
20. 9. 2022
Bonjour, le plugin WP rocket est compatible avec Fastest Cache.
Byla pro vás tato odpověď užitečná?

Máte otázku k tomuto článku?

Položte ji týmu LWS a komunitě. Odpověď bude zveřejněna po kontrole moderátorem.

Položte týmu LWS a jeho komunitě otázku

GDPR: Správce: LWS-Ligne Web Services. Účel: moderace a veřejné zveřejnění vašeho dotazu, případné upozornění na odpověď. Právní základ: souhlas (čl. 6 odst. 1 písm. a GDPR). Uchovávání e-mailů: 90 dní po upozornění, nejvýše 12 měsíců bez odpovědi. Pro uplatnění svých práv viz oddíl GDPR našich obchodních podmínek.