Webserver-Konfiguration des Gambio-Moduls zur Ladezeitoptimierung

In den allermeisten Fällen genügt ein einziger Klick im Gambio-Admin, damit das Ladezeitoptimierungs-Modul die benötigten Direktiven in die .htaccess-Datei schreibt und somit die Auslieferung von Dateien aus dem Cache aktiviert. Nachfolgende Hinweise dienen der manuellen Apache-Konfiguration oder für den Fall, dass Sie Nginx als Webserver einsetzen.

Apache-Konfiguration

Dieser Abschnitt beschreibt ein Szenario, wonach der Apache-Webserver für die Auslieferung sämtlicher Inhalte zuständig ist, die Direktiven in .htaccess-Dateien jedoch unwirksam sind. Das ist selten der Fall, prinzipiell jedoch sehr ratsam. Die Platzierung der Anweisungen in einer Konfigurationsdatei kombiniert mit der Direktive AllowOverride None spart das Auslesen der .htaccess-Datei bei jedem einzelnen Request und bringt somit weitere Performance-Vorteile.

Das aber nur als Bonus-Tipp am Rande. Wenn Sie die Apache-Konfiguration selbst vornehmen, wissen Sie vermutlich bereits um diesen Tipp zur Performancesteigerung.

RewriteRules

In der Box Webserver-Konfiguration des Moduls zur Ladezeitoptimierung finden Sie die Zeile RewriteRules. Ein Klick auf das Auge-Symbol zeigt Ihnen die mod_rewrite-Direktiven, die für das Ausliefern von Dateien aus dem Cache erforderlich sind. Das Modul schreibt diese Direktiven in die .htaccess-Datei im Wurzelverzeichnis der Gambio-Installation. Bei manueller Konfiguration sind sie folglich am Besten in einer <Directory>-Section für ebenjenes Verzeichnis zu platzieren. Das heißt, Sie fügen sie dort ein, wo Sie bereits die Gambio-Direktiven eingefügt haben und zwar vor dem <IfModule mod_rewrite.c>-Block, der Gambios RewriteRules umschließt.

Cache-Verzeichnis

Das Ladezeitoptimierungs-Modul erstellt eine zweite .htaccess-Datei, deren Inhalt nicht im Gambio-Admin ersichtlich ist. Diese liegt im Verzeichnis /cache/wmlo/hostname (z.B. /cache/wmlo/ihrshop.de) und erfüllt drei Aufgaben:

  1. RewriteEngine für das Cache-Verzeichnis ausschalten
  2. Zugriff auf die Dateien im Cache gestatten
  3. HTTP-Header für gzip-komprimierte Dateien setzen

Haben Sie Ihren Apache so konfiguriert, dass Direktiven in der .htaccess-Datei innerhalb des cache-Verzeichnisses unwirksam sind, so erstellen Sie bitte einen <Directory>-Block für das Verzeichnis /cache/wmlo/hostname. Folgende Direktiven sind darin zu platzieren:

RewriteEngine Off
#For Apache 2.2
<IfModule !mod_authz_core.c>
<IfModule mod_authz_host.c>
Order allow,deny
Allow from all
</IfModule>
</IfModule>
# For Apache 2.4
<IfModule mod_authz_core.c>
<RequireAll>
Require all granted
</RequireAll>
</IfModule>
<IfModule mod_mime.c>
AddType text/html .html_gzip
AddEncoding gzip .html_gzip
</IfModule>

HTML-Seiten vom Apache, CSS-Dateien von Nginx

Oftmals dynamisch generierte Seiten vom Typ text/html, application/xhtml+xml oder application/xml via Apache, statische Ressourcen wie CSS- oder JavaScript-Dateien via Nginx ausliefern zu lassen, ist eine aus Performancegründen beliebte Option. Das Modul zur Ladezeitoptimierung funktioniert in dieser Umgebung problemlos – bis auf eine Kleinigkeit. Der nachfolgende Hinweis ist für Sie nur von Relevanz, wenn alle diese Bedingungen zutreffen:

  • Sie möchten die Optimierung Google Fonts asynchron laden nutzen
  • Sie haben die Option CSS inline im Head ausgeben im Gambio-Admin unter System-Einstellungen > Kompression deaktiviert
  • Nginx ist für die Auslieferung von CSS-Dateien zuständig

Das Ladezeitoptimierungs-Modul erstellt eine Kopie der Honeygrid-CSS-Datei und entfernt aus dieser die Import-Anweisung für Google-Fonts. Damit nicht die Original-CSS-Datei, sondern die Kopie aus dem cache-Verzeichnis geladen wird, ist für Nginx folgende Rewrite Rule in die Konfiguration einzufügen:

if ($uri ~ "templates\/Honeygrid\/main\.min\.css$"){
set $rule_0 1$rule_0;
}
if ($args ~ "bust=(\d+)"){
set $rule_0 2$rule_0;
set $bref_0_0 $1;
}
if (-f /var/www/vhosts/ihrshop.de/httpdocs/cache/wmlo/$http_host/css/${bref_0_0}.css){
set $rule_0 3$rule_0;
}
if ($rule_0 = "321"){
rewrite /.* /cache/wmlo/$http_host/css/${bref_0_0}.css last;
}

Übersehen Sie bitte nicht, den exemplarischen Pfad /var/www/vhosts/ihrshop.de/httpdocs dem tatsächlichen Pfad zu Ihrer Gambio-Installation anzupassen.

Gambio läuft vollständig über Nginx

Sie nutzen ausschließlich Nginx als Webserver für Ihren Gambio-Shop? In diesem Fall haben Sie vermutlich bereits die von Gambio verwendeten Apache-Direktiven in Ihre Nginx-Konfiguration übernommen und können mit den unter Apache-Konfiguration genannten Anweisungen ebenso verfahren. Gegebenenfalls haben Sie unter diesen Umständen aber auch gar keinen Bedarf mehr für die Caching-Funktion des Moduls zur Ladezeitoptimierung, sondern möchten ausschließlich die automatische Optimierung verwenden.