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:
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
Mohlo by vás také zajímat
Http Basic Auth v Nginx
Návod, jak jednoduše nastavit Http Basic Auth pro webový server Nginx.
Číst víceNGINX, PHP-FPM a memory_limit
Nastavení memory limitu pro PHP v konfiguraci NGINX a PHP-FPM
Číst víceNGINX a priorita zpracování location direktiv
V konfiguraci domény v NGINX můžete mít více location direktiv, které se svým nastavením překrývají. Zde je popis v jakém pořadí budou vyhodnoceny
Číst vícePotřebujete více informací?
Zpráva byla úspěšně odeslána.
Děkujeme
Omlouváme se, ale zprávu se nepovedlo odeslat.
Budeme rádi, když nám o tomto dáte vědět na info@id-sign.com