Ich verwende Drupal (neueste Version 7.22) unter Apache 2.2 und habe auch Varnish (Modul und Proxy) installiert. In Apache habe ich das Modul mod_deflate deaktiviert. Beim Lesen im Internet scheint es, dass die Optionen auf der Leistungsseite in Drupal (aggregiertes CSS, JS) die CSS- und JS-Dateien nicht komprimieren sollten. Beim Durchsuchen meiner Website und Überprüfen der http-Header wird jedoch "Content-Encoding: gzip" angezeigt. Wenn ich mir die (Standard-) .htaccess-Version ansehe, sehe ich, dass es einige Umschreiberegeln gibt, um gzip-Dateien an die Clients zu senden, die sie lesen können. Ich denke, hier kommen die "Content-Encoding: gzip" -Header her. Wenn ich die Komprimierung zwischengespeicherter Seiten auf der Seite mit den Leistungseinstellungen in Drupal aktiviere, wird auch das HTML der angeforderten Seite (nur als anonymer Benutzer) komprimiert zurückgegeben.
1) Führen Sie die Optionen "CSS-Dateien aggregieren und komprimieren" aus. und "JavaScript-Dateien aggregieren". Komprimieren Sie die aggregierten Dateien tatsächlich oder ist es nur so, dass .htaccess sie wie gziped erscheinen lässt? Mit Chrome-Entwicklertools scheinen die Dateien komprimiert zu sein. Wenn Sie sie mit dem Entwickler-Symbolleisten-Addon in Firefox überprüfen (Information -> Dokumentgröße anzeigen), werden sie jedoch nicht als komprimiert gemeldet (während die HTML-Datei immer als solche gemeldet wird, auch wenn ich als authentifizierter Benutzer darauf zugreife!).
2) Wenn sie tatsächlich gziped sind, wo findet die Komprimierung statt? Kann ich den Grad der Komprimierung usw. irgendwie steuern?
3) Ich erhalte immer X-Drupal-Cache "MISS". Es ist mir egal, da ich Lack installiert habe. Wie kommt es jedoch, dass mir eine komprimierte HTML-Datei (die sich nicht im Cache befindet) zurückgegeben wird, da ich den Cache nicht betrete?
4) Besteht die Möglichkeit, dass das Lackmodul irgendetwas durcheinander bringt? Ich greife mit https auf die Website zu, um sicherzugehen, dass der Lack auf jeden Fall umgangen wird.
5) Wenn ich mod_deflate aktiviere, sollte ich diesen Teil von .htaccess intakt lassen? Ich verstehe, dass mod_deflate keine Vorkomprimierung zulässt, aber was ist, wenn die Komprimierung besser ist?
6) Wenn drupal die CSS-, JS- und HTML-Dateien selbst komprimiert, wozu ist dann mod_deflate für diese Dateien aktiviert?
Hier ist der relevante Teil meiner .htaccess-Datei als Referenz:
<IfModule mod_headers.c>
# Serve gzip compressed CSS files if they exist and the client accepts gzip.
RewriteCond %{HTTP:Accept-encoding} gzip
RewriteCond %{REQUEST_FILENAME}\.gz -s
RewriteRule ^(.*)\.css $1\.css\.gz [QSA]
# Serve gzip compressed JS files if they exist and the client accepts gzip.
RewriteCond %{HTTP:Accept-encoding} gzip
RewriteCond %{REQUEST_FILENAME}\.gz -s
RewriteRule ^(.*)\.js $1\.js\.gz [QSA]
# Serve correct content types, and prevent mod_deflate double gzip.
RewriteRule \.css\.gz$ - [T=text/css,E=no-gzip:1]
RewriteRule \.js\.gz$ - [T=text/javascript,E=no-gzip:1]
<FilesMatch "(\.js\.gz|\.css\.gz)$">
# Serve correct encoding type.
Header set Content-Encoding gzip
# Force proxies to cache gzipped & non-gzipped css/js files separately.
Header append Vary Accept-Encoding
</FilesMatch>
</IfModule>
quelle