Empfehlung TYPO3-Extension: nc_staticfilecache

TYPO3 ist ein sehr mächtiges Content-Management-System, woraus sich in Bezug auf Flexibilität und Anpassbarkeit sehr viele Vorteile ergeben. Leider hat diese Mächtigkeit auch einen Nachteil: Beim Aufruf einer TYPO3-Seite muss der komplette TYPO3-Source vom Webserver geladen und geparst werden. Dazu kommen noch etliche Datenbankabfragen, bis die Seite aufgebaut ist und an den Browser gesendet werden kann. Mit einem geschickten Einsatz der Extension nc_staticfilecache lässt sich dieser Umweg abkürzen und der komplette Internetauftritt extrem beschleunigen.

Funktionsweise von nc_staticfilecache

Die Extension generiert aus dynamisch erzeugten TYPO3-Seiten – vorausgesetzt, sie enthalten ausschließlich cachebare Elemente – statische HTML-Dokumente als exakte Kopien und legte diese auf dem Webserver ab. Voraussetzung dafür ist die Verwendung einer Extension, die TYPO3 um lesbare Pfade erweitert, wie z.B. realurl oder simulatestatic.

Durch eine Anpassung der mod_rewrite-Konfiguration wird dann bei jeden Seitenaufruf vom Webserver selbst geprüft, ob zu dieser Seite eine statische Variante gespeichert ist. Existiert diese statische Variante, wird diese direkt an den Client ausgeliefert, ohne dass TYPO3 ins Spiel kommt. Es muss kein PHP-Parser gestartet werden, kein TYPO3 geladen werden und keine Datenbankabfrage durchgeführt werden. Laut Eigenbeschreibung der Extension sind dazu Beschleunigungen bis zu 23000% möglich.

Um die Auslieferung von veraltetem Content zu verhindern, werden die statischen Dateien beim löschen des Frontend-Caches mit gelöscht. Darüber hinaus sollte auch noch ein Cron-Job eingerichtet werden, wie im Extension-Handbuch beschrieben. Dieser löscht die statischen HTML-Seiten automatisch nach ihrer definierten Lebensdauer. Diese Lebensdauer entspricht der im Backend eingestellten Cache-Dauer, die zu jeder Seite in den Seiteneigenschaften vorgenommen werden können.

TYPO3-Auftritt mit nc_staticfilecache beschleunigen

Der leichteste Schritt ist die Installation der Extension über den TYPO3-Extension-Manager. Anschließend ist im Modul „Web > Info“ der neue Punkt „Statischer HTML Cache“ verfügbar. Hier ist ersichtlich, welche Seiten gecached wurden bzw. warum einzelne Seiten nicht gecached wurden.

Die Meldung config.no_cache is true zeigt an, dass die komplette Seite nicht gecached werden kann. Das kann mehrere Gründe haben:

  1. Caching in den Seiteneigenschaften deaktiviert
  2. Caching im TypoScript deaktiviert (config.no_cache = 1)
  3. eine Extension deaktiviert das Caching für diese Seite ($GLOBALS['TSFE']->set_no_cache())

Die Meldung page has INTincScript zeigt an, dass einzelne Elemente nicht gecached werden können. Das können z.B. Plugins sein, die als USER_INT anstatt als USER geladen werden oder TypoScript-Elemente, die vom Typ COA_INT anstatt vom Typ COA sind. Ein Hilfsmittel, um die INT-Elemente ausfindig machen zu können, ist der „TypoScript-Objekt-Browser“, der sich im Modul „Web > Template“ einsehen lässt, sobald eine Seite im Seitenbaum ausgewählt wurde.
Ist ein INT-Objekt ausfindig gemacht, gilt es zu überlegen, ob sich das Caching für dieses Element nicht evtl. doch erlauben lässt. Ist dies der Fall, kann der Typ via TypoScript geändert werden:

	# noncacheable INT objects
plugin.user_myextension = USER_INT
lib.mytyposcriptobject = COA_INT

	# cacheable objects
plugin.user_myextension = USER
lib.mytyposcriptobject = COA

Nachdem die Extension installiert ist, und die Seiten als statische Kopien auf dem Webserver abgelegt werden, muss noch die mod_rewrite-Konfiguration angepasst werden. Eine Beispiel-Konfiguration dazu befindet sich in Extension-Handbuch. Diese muss aber je nach Serverumgebung und realurl– bzw. simulatestatic-Konfiguration noch angepasst werden.

Fazit

Durch einen geschickten Einsatz der Extension „nc_staticfilecache“ lässt sich der TYPO3-Auftritt extrem beschleunigen und die Serverlast deutlich reduzieren. Voraussetzung dafür ist jedoch ein durchdachter Einsatz von nicht-cachebaren INT-Elementen, die es zu vermeiden gilt. Schließlich kann ein einziges Plugin, das nicht gecached werden darf, schon den kompletten Einsatz der Extension verhindern.

Die Extension „nc_staticfilecache“ ist in ihrer aktuellsten Version über das Extension Repository erhältlich.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.