Kontakt aufnehmen
Server 1 Min. Lesezeit · 11/2020

NGINX und Cache-Einstellungen für PHP-generierte Bilder und statische Dateien

Die richtige Cache-Einstellung für statische Inhalte kann die Ladegeschwindigkeit von Seiten spürbar verbessern

Bei statischen Inhalten, die sich während ihrer Lebensdauer nicht ändern (Bilder, CSS-Dateien mit generiertem eindeutigem Namen usw.), lohnt es sich, im Header auch die Information über ihr Ablaufdatum mitzusenden. Handelt es sich um Inhalte, die erst beim ersten Zugriff generiert werden, muss für diesen ersten Request eine Weiterleitung auf die richtige Datei sichergestellt werden. Das ist in der Regel der Front Controller der gesamten Anwendung, meist index.php. Diese Situation tritt häufig bei der Generierung von Vorschaubildern auf, z. B. mit LiipImagineBundle

Der eigentliche Eintrag in der NGINX-Konfiguration ist einfach und kann z. B. so aussehen:

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

Zur besseren Verständlichkeit hier noch die Bedeutung der einzelnen Teile des Eintrags und der verwendeten Variablen:

  • location ~* - Direktive, die für Requests gilt, die dem angegebenen regulären Ausdruck entsprechen. In diesem konkreten Fall stellen wir den Cache für Bilder, CSS, JS und Fonts ein.
  • expires 365d - das Ablaufdatum setzen wir auf 365 Tage
  • $uri - normalisierte URI aus dem Request
  • $is_args - ? (Fragezeichen), wenn der Request GET-Parameter enthält, sonst ein leerer String
  • $args - die GET-Parameter selbst

Einen Link zur NGINX-Dokumentation mit allen verfügbaren Variablen finden Sie hier

Teilen
LinkedIn Facebook

Brauchen Sie mehr als einen Artikel?

Melden Sie sich unverbindlich – ein paar Sätze dazu, worum es geht, genügen.

Weiterlesen

Ähnliche Artikel

Weitere Notizen aus Betrieb und Entwicklung.

Gesamter Ratgeber