Hallo,
Le 24.09.2009 à 21:35, Manfred Rebentisch a écrit :
> ich habe mod_deflate im Einsatz. Nun denke ich, Dateien wie CSS und
> JavaScript
> müssen nicht bei jedem Request komprimiert werden. Wie macht man das richtig,
> dass man gleich die komprimierte Datei sendet?
>
> z.B. liegt "prototype.js.gz" neben "prototype.js" im Web-Dir. Ich habe eine
> Rewrite-Regel im Netz gefunden und probiert, die funktioniert auch, nur dass
> der Browser dann die gzip-Datei nicht auspackt. Der http-header kommt dann
> wohl nicht richtig rüber.
>
>
> Ich arbeite nicht mit PHP, sondern mit statischen Dateien und mit eigenen
> Apache-Modulen. Ich könnte JS-Request entgegen nehmen und die JS-Dateien mit
> dem richtigen Header komprimiert versenden. Aber ich meine, dass es einfacher
> gehen müßte, noch viel effizienter.
>
> Danke für Tips
>
> Manfred
(der Thread ist zwar schon ein Jahr alt, und ich hatte schon lange vor, ein
paar Zeilen dazu zu schreiben. Dank Mailinglisten-Archiv kann es ja vielleicht
immer noch jemandem nuetzen.)
Ich habe einmal eine aehnliche Konfiguration benoetigt, und ich habe keine
Anleitung gefunden, die sowohl Komprimierung und Caching, als auch Varianten
beruecksichtigt. Deshalb hatte ich mir damals vorgenommen, eine solche zu
posten. Ich grabe sie hier also einmal aus. Die folgende Konfiguration hat bei
mir hervorragend funktioniert, und ich hoffe, dass ich sie hier vollstaendig
wiedergebe:
<Directory /srv/www/www.example.com>
...
# deflate all text files
AddOutputFilterByType DEFLATE text/html text/plain text/css text/x-js
</Directory>
<IfModule mod_disk_cache.c>
CacheRoot /var/cache/apache2
CacheEnable disk /
CacheDirLevels 5
CacheDirLength 3
CacheMinFileSize 1
CacheMaxFileSize 10000000
CacheIgnoreHeaders Set-Cookie Cookie Cache-Control Pragma
</IfModule>
# to make mod_cache work also on requests on '/':
AliasMatch ^/$ /srv/www/vhosts/www.example.com/index.html
Es empfiehlt sich, Expires Kopfzeilen zu setzen, zB:
ExpiresByType text/css "access plus 4 hours"
ExpiresByType image/x-icon "access plus 4 weeks"
ExpiresDefault "access plus 4 hours"
Bei statischen Dateien, die periodisch neu generiert werden, kann man die
Expires-Zeit, passend dazu, absolut statt relativ gestalten. Bei einer Datei
die alle 30 min neu generiert wird, waere zB "modification plus 32 minutes"
eine passende Einstellung. Dadurch frische Daten zeitnah ausgeliefert, anstatt
noch fruehere Versionen aus dem Cache zu senden.
Ein cron-Job entfernt veraltete Daten aus dem Cache:
-2 */6 * * * root htcacheclean -v -p /var/cache/apache2 -l 1 &> /dev/null
Peter
--------------------------------------------------------------------------
Apache HTTP Server Mailing List "users-de"
unsubscribe-Anfragen an [email protected]
sonstige Anfragen an [email protected]
--------------------------------------------------------------------------