Statischer Cache
Diese Seite ist für Systemadministratoren bei Hosting-Anbietern, die nach dem statischen Cache gefragt werden oder ihn in alten Hosting-Anleitungen erwähnt sehen. Sie beantwortet: was er ist, warum er ausgeschaltet ausgeliefert wird, wann er noch sinnvoll ist und wie Sie ihn erzeugen und ausliefern, wenn ein Kunde ihn braucht. Die Quellen sind Generator für den statischen Cache, Standardwerte des statischen Caches und Kapitel 10, Abschnitt 10.12.
Warnung
.htaccessbremst jede Anfrage. Sind.htaccess-Dateien erlaubt (AllowOverridealles außerNone), geschweige denn genutzt, sucht Apache sie bei jeder Anfrage in jedem Verzeichnis des Pfads und liest und wertet sie aus, und die Ladezeiten der Seiten steigen drastisch (gemessen). Die einzige wirkliche Abhilfe ist, die Funktion für den virtuellen Host abzuschalten:AllowOverride Noneim virtuellen HTTPS-Host, und die Regeln in der Konfiguration des virtuellen Hosts selbst als mod_rewrite-Regeln. Das ist in Geschwindigkeitstests im Produktivbetrieb weit schneller und die Zeit für die Optimierung einer Produktivkonfiguration unbedingt wert. Stellen Sie sofort um: Übernehmen Sie die Regeln des Beispiels für einen virtuellen HTTPS-Host in Ihren virtuellen Host (mit dem statischen Cache auchstaticcache_offload.conf), setzen SieAllowOverride None, führen Sieapachectl configtestaus, laden Sie Apache neu und testen Sie die Website. Dieselben Regeln für andere Server: nginx, LiteSpeed, Caddy, IIS, Velocity (eingebaut); wohin Regeln für virtuelle Hosts in einem Control Panel gehören: Plesk, cPanel, DirectAdmin, ISPConfig. Unter LiteSpeed oder OpenLiteSpeed kann zusätzlich der Seiten-Cache des Servers anonyme Besucher und Crawler ohne PHP bedienen: Seiten-Caching mit LiteSpeed und OpenLiteSpeed.
Inhalt
- Was er ist
- Warum er ausgeschaltet ausgeliefert wird
- Wann ein Kunde ihn trotzdem wollen könnte
- Ihn erzeugen
- Ihn vom Webserver ausliefern
- Einstellungen
- Checkliste
Was er ist
Der statische Cache verwandelt öffentliche Seiten in einfache Dateien unter var/<site>/static, die der Webserver sendet, ohne
Exponential überhaupt zu starten. Rewrite-Regeln beantworten eine Anfrage aus der Datei, wenn sie ein einfaches GET oder HEAD ist,
keinen Query-String hat und keine Sitzung trägt; Formulare, Suchen und alle Angemeldeten bekommen immer die Live-Seite.
Warum er ausgeschaltet ausgeliefert wird
site.ini [ContentSettings] StaticCache=disabled ist der mitgelieferte Wert, und der Installer schreibt ihn so. Das Installationsbuch
ist direkt: Lassen Sie den statischen Cache aus. Mit eingeschaltetem statischem Cache erzeugte jede Veröffentlichung jede betroffene
Seite auf jedem öffentlichen Siteaccess über HTTP innerhalb der Anfrage des Redakteurs neu, sodass eine Veröffentlichung, die nichts
änderte, Sekunden statt eines Bruchteils davon dauerte. Der Antwort-Cache von Velocity gibt Besuchern denselben Nutzen ohne diese Kosten
(Kapitel 10, Abschnitt 10.12).
Die Arbeit an 6.0 hat das Auffrischen günstiger gemacht (jede Seite einmal abgerufen, mehrere gleichzeitig: eine Veröffentlichung ohne Änderung, die 24 Seiten in 4975 ms auffrischte, frischt jetzt 14 Seiten in etwa 0,5 s auf), aber die Kosten fallen weiterhin in der Anfrage des Redakteurs an (Generator für den statischen Cache).
| Statischer Cache | Antwort-Cache von Velocity | Rollenbewusster HTTP-Cache | |
|---|---|---|---|
| Ausgeliefert | aus | an unter Velocity | aus |
| Ausgeliefert von | dem Webserver, aus einer Datei | dem Elternprozess von Velocity | einem frühen Ausstieg oder Velocity, vor dem Kernel |
| Angemeldete Besucher | nie | nie | ja, pro Berechtigungskontext |
| Kosten beim Veröffentlichen | Seiten werden über HTTP in der Anfrage des Redakteurs aufgefrischt | keine; Einträge laufen ab | Leeren, kein erneuter Abruf |
Wann ein Kunde ihn trotzdem wollen könnte
Wo weder Velocity noch der HTTP-Cache verfügbar ist und eine Website fast nur aus öffentlichen Seiten besteht, die sich selten ändern
(die eigene Beschreibung der Seite zur Funktion: Websites mit überwiegend öffentlichen, sich selten ändernden Seiten). Vereinbaren Sie die
Kosten beim Veröffentlichen zuerst mit dem Kunden. Mit [CacheSettings] CronjobCacheClear=enabled übernimmt der Cronjob-Teil
staticcache_cleanup das Leeren statt der Veröffentlichung.
Ihn erzeugen
Aus Setup > Cache > Statischer Inhalts-Cache: Wählen Sie eine öffentliche Website, eine Seitengrenze (2500, 1 bis 20000) und eine Linktiefe (12, 0 bis 30), drücken Sie Neu erstellen und sehen Sie zu, wie jede Seite gespeichert wird. Von der Kommandozeile:
php bin/php/makestaticcache.php --help --allow-root-user
php bin/php/makestaticcache.php --site=site --allow-root-user
php bin/php/makestaticcache.php --site=site --max-pages=500 --max-depth=6 --allow-root-userDer Generator durchläuft die Website von ihrer eigenen Wurzel aus und folgt nur den Links, die er schreibt, sodass er genau die Adressen
besucht, die ein Besucher anfragen kann. Ein Lauf leert zuerst die gespeicherten Seiten der Website, es sei denn, --keep ist angegeben.
Führen Sie ihn als Benutzer der Website aus, damit die Dateien für den Webserver beschreibbar bleiben.
Ihn vom Webserver ausliefern
| Einrichtung | Was Sie nutzen |
|---|---|
Apache mit .htaccess | kopieren Sie .htaccess_root_static statt .htaccess_root nach .htaccess; es ist .htaccess_root plus die Regeln zur Auslagerung. Von der Konsole aus: ./console exp:setup:htaccess --static --apply (mit --force, um eine vorhandene .htaccess zu ersetzen; sie wird vorher gesichert) |
| Virtueller Host für Apache | die Regeln aus doc/eng-us/examples/staticcache_offload.conf im Abschnitt <Directory> des vhost der öffentlichen Website |
| andere Server | bilden Sie dieselben Bedingungen nach (Methode, leerer Query-String, kein Sitzungscookie, Datei existiert) |
Prüfen Sie die Zeile RewriteRule ^ - [E=EZ_VAR_SITE:site]: Der Wert ist site.ini [FileSettings] VarDir ohne das führende var/;
eine Standardinstallation (var/site) braucht keine Änderung.
Warnung Fügen Sie die Regeln zur Auslagerung nie dem vhost der Administration hinzu: Dort wird nichts zwischengespeichert, und die Regeln dürfen nie die Gelegenheit bekommen, die Anfrage eines Redakteurs aus einer Datei zu beantworten, die für einen anonymen Besucher erzeugt wurde (
doc/eng-us/examples/staticcache_offload.conf).
Einstellungen
settings/staticcache.ini, [CacheSettings] (überschrieben in settings/override/staticcache.ini.append.php):
| Schlüssel | Standard | Bedeutung |
|---|---|---|
HostName | leer | veraltet; leer lassen, damit jeder Siteaccess von seiner eigenen SiteURL abgerufen wird |
SourceProtocol | http | http oder https für den Abruf |
StaticStorageDir | static | wird zu var/<site>/static; ein absoluter Pfad wird unverändert genutzt |
MaxCacheDepth | 12 | tiefere URLs werden weder zwischengespeichert noch beim Veröffentlichen aufgefrischt |
CachedURLArray[] | /, /* | zwischenzuspeichernde URLs |
CachedSiteAccesses[] | leer | leer bedeutet jeder öffentliche Siteaccess |
AlwaysUpdateArray[] | / | URLs, die bei jeder Veröffentlichung aufgefrischt werden |
CronjobCacheClear | disabled | enabled lässt den Cronjob-Teil staticcache_cleanup statt der Veröffentlichung leeren |
FetchConcurrency | 8 (im Code) | gleichzeitig abgerufene Seiten beim Auffrischen |
Installationen, die von älteren Releases aktualisiert wurden, haben vielleicht Überschreibungen, die sich auf die alten Standardwerte verließen; siehe Standardwerte des statischen Caches.
Checkliste
- To do:
StaticCache=disabledin jedem Tarif, es sei denn, ein Kunde hat darum gebeten und die Kosten beim Veröffentlichen akzeptiert. - To do: Wenn genutzt: Regeln zur Auslagerung nur auf dem öffentlichen vhost;
EZ_VAR_SITEpasst zuVarDir. - To do: Erzeugung als Benutzer der Website ausgeführt; die gespeicherten Seiten mit einem einfachen
curlgeprüft. - To do: Anfragen angemeldeter Benutzer und Anfragen mit Query-String erreichen weiterhin PHP.
Verwandte Seiten
- Cache-Schichten
- Antwort-Cache von Velocity
- Apache mit PHP-FPM
- Generator für den statischen Cache
- .htaccess und config.php von der Konsole aus einrichten
- Freie Dokumentation: Diese Seite darf unter der GNU FDL 1.3 frei kopiert, übersetzt und verbessert werden.
Werden Sie Exponential-Partner
Partner teilen ihre Informationen, stellen Mittel bereit, geben Beiträge zurück und entwickeln die Produkte mit uns, und so wächst Exponential. Eine Partner-Website und ein Dashboard sind für Mitte 2027 geplant: Werden Sie noch heute Partner, damit wir schneller wachsen und neue Funktionen früher liefern.