Skip to main content
Drupal - boost logic, cache

Drupal je populární a rozšířený CMS, na kterém se dají vystavět velké a složité weby. Každý, kdo pracoval na nějakém komplexnějším webu, asi zjistil, že čím víc je web složitější, tím je odezva pomalejší. Drupal je v základu vybaven jednoduchých cachováním. Toto cachování je pro jednoduché weby obvykle dostačující. Avšak u složitějších webů nemusí toto řešení stačit. V mnoha případech se ani nemusí jednat o extrémně složitý web a člověk může s rychlostí narazit. Typickým příkladem je Drupal na sdíleném hostingu. Zde přichází na scénu Drupal Boost.

Drupal Boost je modul do Drupalu, který si můžete jednoduše stáhnout. Tento modul umožňuje po relativně jednoduchém nastavení statické cachování Drupalu pro anonymní uživatele. Celý princip je v zásadě velice jednoduchý. Následují obrázek naznačuje, jak to celé funguje.

 

Drupal Boost - pricip

Drupal Boost - princip

Z předchozího obrázku je vidět, že když přijde request na server, který splňuje určité podmínky, tak se zcela přeskočí přístup do Drupalu a provádění jednotlivých php skriptů a přístupů do DB. Pouze se vrátí statický soubor, pokud existuje. Tento statický soubor se vygeneruje při prvním přístupu na danou stránku a poté už je vracen všem ostatním, kteří si prohlíží danou stránku. Vhledem k popsanému principu je jasné, že takové cachování je použitelné pouze pro anonymní uživatele.

Nabízí se otázka, když se vrací statický soubor, co se stane když se upraví obsah stránky? V Boostu lze v základu nastavit, po jaké době má cache expirovat. Možnosti jsou od 1 minuty až po 12 měsíců. Toto nastavení stačí u webů, kde se obsah mění minimálně, ale pokud na webu přibývá několik příspěvků denně, nemusí být tato nastavení dostatečná. Je totiž celkem zbytečné nechat expirovat cache u všech stránek několikrát denně jen proto, že se změnily například 3 stránky.

Pokročilejší možnosti expirace Boost cache nabízí modul Cache Expiration, který je také dostupný ke stažení. Tento modul umožňuje nastavit například expirace cache u daného nodu, pokud nastane nějaká akce. Příklad akce je úprava nodu, vložení nodu atd. Spolu s expirací nodu je možnost nastavit další stránky, které s danou akcí mají expirovat (například homepage či nějaké konkrétní URL).

Samotná instalace a správné nastavení Boost modulu je velice pěkně popsané v jeho dokumentaci. Praktickou ukázku rozchození Boostu na Drupalu si ukážeme v nějakém z dalších příspěvků.