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 users-de-unsubscr...@httpd.apache.org sonstige Anfragen an users-de-h...@httpd.apache.org --------------------------------------------------------------------------