Ptejte se
Poptat projekt

+420 605 905 191 · info@id-sign.com

Servery 1 min čtení · 11/2020

NGINX a nastavení cache u PHP generovaných obrázků a statických souborů

Správné nastavení cache u statického obsahu může znatelně zlepšit rychlost načítání stránek

Pro statický obsah, který se po dobu své existence nemění (obrázky, css soubory s vygenerovaným unikátním jménem atd.) je výhodné posílat v hlavičce i informaci o jeho expiraci. Pokud se jedná o obsah, který má být teprve vygenerován prvním přístupem, je potřeba pro tento první request zajistit přesměrování na správný soubor. Tím bývá front controller celé aplikace, což bývá index.php. Tato situace nastává často u generování náhledových obrázků, např. pomocí LiipImagineBundle

Vlastní zápis v konfiguraci NGINX je jednoduchý a může vypadat např takto:

nginx
location ~* \.(jpg|jpeg|png|webp|gif|ico|css|js|woff2)$ {
    expires 365d;
    try_files $uri /index.php$is_args$args;
}

Pro srozumitelnost uvedu i význam jednotlivých částí zápisu a použitých proměnných:

  • location ~* - direktiva platná pro request odpovídající uvedenému regulárnímu výrazu. V tomto konkrétním případě nastavujeme cache pro obrázky, css, js a fonty.
  • expires 365d - expiraci nastavujeme na 365 dní
  • $uri - normalizované URI z requestu
  • $is_args - ? (otazník) pokud request obsahuje GET parametry, jinak prázdný řetězec
  • $args - vlastní GET parametry

Odkaz do NGINX dokumentace na všechny dostupné proměnné je zde

Sdílet
LinkedIn Facebook

Potřebujete víc než článek?

Zkuste se nám nezávazně ozvat – stačí několik vět o tom, co řešíte.

Dál čtěte

Podobné články

Další zápisky z provozu a vývoje.

Celá poradna