Browser-Caching für statische Dateien

Plesk unterstützt die Konfiguration von Browser-Caching für statische Ressourcen für einzelne oder alle Domains. Bitte beachten Sie, dass für die zentrale Einrichtung aller Domains ein Unmanaged Server mit SSH Root-Zugriff erforderlich ist.



Einrichtung für eine Domain

Wählen Sie zunächst die Domain aus, für die Sie Browser Caching aktivieren möchten. Navigieren Sie anschließend zu den Apache & nginx Einstellungen der Domain.


Zusätzliche NGINX Direktiven:

location ~* \.(js|jpg|jpeg|gif|png|css|tgz|gz|rar|bz2|doc|pdf|ppt|tar|wav|bmp|rtf|swf|ico|flv|txt|woff|woff2|svg)$ {
    etag on;
    add_header Cache-Control "public, max-age=31536000";
}


Google empfiehlt mindestens 365 Tage für statische Ressourcen.

Quelle: https://developer.chrome.com/docs/lighthouse/performance/uses-long-cache-ttl?hl=de



Einrichtung für alle Domains


Für die Einrichtung ist ein Unmanaged Server mit SSH Root-Zugriff erforderlich


Melden Sie sich via SSH am Server an und erstellen Sie folgende Datei:

touch /etc/nginx/conf.d/expires.global


location ~* \.(js|jpg|jpeg|gif|png|css|tgz|gz|rar|bz2|doc|pdf|ppt|tar|wav|bmp|rtf|swf|ico|flv|txt|woff|woff2|svg)$ {
    etag on;
    add_header Cache-Control "public, max-age=31536000";
}


Erstellen Sie anschließend ein neues Verzeichnis für die virtuellen Templates:

mkdir -p /usr/local/psa/admin/conf/templates/custom/domain/


Kopieren Sie das Standard NGINX Template in das neue Verzeichnis:

cp -p /usr/local/psa/admin/conf/templates/default/domain/nginxDomainVirtualHost.php /usr/local/psa/admin/conf/templates/custom/domain/


Bearbeiten Sie das Standard NGINX Template und fügen Sie die neue globale Konfigurationsdatei am Ende hinzu:


nano /usr/local/psa/admin/conf/templates/custom/domain/nginxDomainVirtualHost.php

include /etc/nginx/conf.d/expires.global;

# Ende der Datei
<?php if (is_file($VAR->domain->physicalHosting->customNginxConfigFile)): ?>
include "<?php echo $VAR->domain->physicalHosting->customNginxConfigFile ?>";
<?php endif ?>
}


Neue Domains werden automatisch mit dieser Konfiguration ausgerollt, sodass das Browser-Caching via NGINX im Standard aktiv ist. Damit sichergestellt wird, dass auch bestehende Domains die korrekte neue Konfiguration erhalten, muss folgender Befehl ausgeführt werden:

/usr/local/psa/admin/bin/httpdmng --reconfigure-all



Beispiel Max-Age Werte

Header Wert Beschreibung
Cache-Control public, max-age=31536000 365 Tage
Cache-Control public, max-age=15552000 180 Tage
Cache-Control public, max-age=7776000 90 Tage
Cache-Control public, max-age=5184000 60 Tage
Cache-Control public, max-age=2592000 30 Tage
Cache-Control public, max-age=604800 7 Tage



Browser-Caching überprüfen

Um die Anpassungen des Caching-Verhaltens zu überprüfen, führen Sie folgenden Befehl aus:


curl -I https://www.creoline-demo.com/static/styles.css

HTTP/2 200
server: nginx
date: Thu, 08 Aug 2024 12:18:50 GMT
content-type: text/css
content-length: 25500
last-modified: Thu, 08 Aug 2024 12:18:50 GMT
etag: "4107c187-125zc"
cache-control: public, max-age=31536000


Überprüfen Sie die HTTP-Antwort, ob sowohl der Cache-Control Header den Wert public als auch den max-age Wert enthält. Zusätzlich muss ebenfalls ein etag Header dargestellt werden.