static file cache Statisch files cachen met realurl, mod_rewrite en mod_expires. . . . Helpt het broeikaseffect tegen te gaan. Michiel Roos Netcreators
Wat doet het? Ehrm . . . statische files cachen? Ik bedoel . . . statische pagina's statisch cachen? Ehmz . . . platte html pagina's maken van statische pagina's. Als er een platte html pagina bestaat verwijst mod_rewrite je hiernaar door. Dit betekent dat TYPO3 helemaal niet wordt geladen. Poor man's proxy.
What's in it for me?
23000 %
snelheids verbetering voor statische pagina's!
Key features maakt je site fscking snel transparant voor de bezoeker en de gebruiker werkt in een bestaande installatie verstuurt 'cache headers'
Requirements vereist
aanbevolen
apache
realurl
mod_rewrite
mod_expires
in den beginne Tim Lochmüller: fl_staticfilecache (cheers Tim! ;-) minpunten voor Tim xclasses niet mijn stijl backend module? Waarom? statische bestanden moeten actief gewist worden 'cache headers' werken niet met platte html
De pluspunten voor Tim Wat een goed idee! TYPO3 is goed in het 'serveren' van dynamische content Apache is heel goed in het 'serveren' van platte html mod_rewrite is goed in het 'doorverwijzen' Er is een indrukwekkende snelheidswinst te behalen
Vragen Wat kan er worden gecached als platte html? Hoe kunnen we de cache wissen? Platte html bestanden sturen geen cache headers? Welke hooks bestaan er? Waar zitten ze? Wanneer worden ze aangeroepen? Werkt het? . . . werkt het nu echt?
TYPO3 schaduwen cache aanmaak hook: insertPageIncache
cache wis hooks: clearCachePostProc clearPageCacheEval tslib_fe-PostProc
Ctrl+Shift+Reload afvangen: tslib_fe-PostProc
Hook zoeker hook zoek extensie
Hoe werkt het? de pagina's die TYPO3 op slaat in de cache kunnen we opslaan als platte html. gebruik mod_rewrite om: te checken of een plat html bestand bestaat, zo ja . . . de request doorverwijzen naar het platte html bestand, zo nee . . . de volgende 'ruleset' van mod_rewrite uitvoeren.
De test conditie en de rewrite regel RewriteCond %{DOCUMENT_ROOT}/typo3temp/tx_ncstat icfilecache/%{HTTP_HOST}/%{REQUEST_U RI}index.html -f RewriteRule .* typo3temp/tx_ncstaticfilecache/%{HTTP_HO ST}/%{REQUEST_URI} [L]
Overige condities RewriteCond %{HTTP:Pragma} !no-cache RewriteCond %{HTTP:Cache-Control} ! no-cache RewriteCond %{HTTPS} off RewriteCond %{HTTP_COOKIE} ! be_typo_user RewriteCond %{HTTP_COOKIE} ! nc_staticfilecache RewriteCond %{REQUEST_METHOD} GET RewriteCond %{QUERY_STRING} ^$
En die cache headers dan? Platte html bestanden sturen geen 'cache headers'! HA! . . . dus . . . Als je mod_rewrite gebruikt, is de kans groot . . . . . . dat mod_expires ook op je systeem aanwezig is.
Mod Expires Door gebruik te maken van realurl 'path segments' kunnen we een mooie directory structuur opbouwen voor de cache. Ieder plat html bestand leeft alleen in zijn eigen dir. Daarbij plaatsen we een .htaccess bestand.
ExpiresActive on ExpiresByType text/html A60
Opruimen . . . nee Eenmaal aangemaakt gaat het html bestand niet vanzelf weg. Uiteindelijk verloopt het bestand wel. De browser zal het uit zijn cache gooien en een nieuwe versie op halen. Als in TYPO3 de cache van een pagina wordt leeg gemaakt wordt het statische bestand ook gewist.
Clear cache tweaking TsConfig settings: TCEMAIN.clearCacheCmd TCEMAIN.clearCache_pageSiblingChildren TCEMAIN.clearCache_pageGrandParent TCEMAIN.clearCache_disable
Optimalisatie hulp Kasper Skårhøj: staticpub Coole backend module waarin je kunt zien wat er is gecached. Backend info module is toch wel een goede idee.
De cijfers ab apache bench De test uitvoeren op een van je drukste servers in vol bedrijf natuurlijk!
Server torture ;-) ab -c 100 -n 1000 http://www.fictive.org/gpl-short/ dynamisch (helemaal gegenereerd) TYPO3 cache statisch (plat html) dynamic TYPO3cache static
requests / s time / request ms transfer rate Kbps test time s 6.3 158.68 83.82 158.68 23.28 42.96 283.13 42.96 5346.62 0.19 71805.12 0.19
Serveer meer request per seconde requests / s 5500 5000 4500 4000 3500 3000 2500 2000 1500 1000 500
6
23
0 dynamic
TYPO3 cache
static
Beantwoord requests sneller mean time per request in ms 160 150 140 130 120 110 100 90 80 70 60 50 40 30 20 10 0
0.2 dynamic
TYPO3 cache
static
Snelheids verbeterings factor
230 keer zo snel
Oooooh, laat nog es zien!
23000 % snelheids winst
TODO Crawler extensie integreren om 's nachts de cache op te kunnen bouwen.
Bedankt hè!
Michiel Roos Netcreators nc_staticfilecache
I have a dream . . . That one day . . . . . . all static file cache extensions . . . . . . will become one! called: 'staticfilecache'
Tools eclipse svn firefox + live http headers cc_devlog grep, sed et al