Der Browser-Cache läuft für Bilder im Cache mod_pagespeed dauerhaft ab

7

Kürzlich installiertes Google-Plugin mod_pagespeed und ich möchte es ausschließlich zur Bildoptimierung verwenden.

Bisher wurde das Ergebnis von Pagespeed-Erkenntnissen getroffen oder verfehlt. Die Hälfte der Zeit funktioniert es gut, die andere Hälfte beschwert sich, dass ich "das Browser-Caching für die folgenden zwischenspeicherbaren Ressourcen nutzen sollte". - mit einer langen Liste fast aller Bilder auf meiner Homepage, die standardmäßig zwischen 5 Minuten zwischengespeichert wurden.

Jetzt habe ich gelesen, dass dies manchmal passieren kann, wenn das Modul das Rendern der zwischengespeicherten Version noch nicht vollständig abgeschlossen hat und dass es in der Zwischenzeit ein temporäres Image mit einem kurzen Cache bereitstellt. Aber ich kann nicht verstehen, warum das so ist, da sich die Bilder nicht geändert haben und es sich um dieselben Bilder handelt, von denen erst vor 10 Minuten gesagt wurde, dass sie in Ordnung sind.

Soweit ich sehen kann:

  • Die Bilder befinden sich im Cache und werden ohne Probleme bereitgestellt
  • Die Bilddateien haben sich nicht geändert, daher sollte der Cache gültig bleiben

Ich verwende Apache 2.4.18 und mod_pagespeed 1.11.33.5-0. Die Konfigurationsdatei pagespeed.conf wird mit den folgenden zwei Zeilen unten vor dem <Location>Block konfiguriert :

ModPagespeedRewriteLevel PassThrough
ModPagespeedEnableFilters rewrite_images,extend_cache_images

Kann jemand eine Erklärung für einen scheinbar dauerhaft ablaufenden Cache vorschlagen?

Billynoah
quelle
Ich habe noch nicht mit dem Pagespeed-Plugin von Google gespielt, aber ich habe meinen Beitrag hier auf mod_expires und mehr gelesen . Ich denke, das wird Ihr Problem lösen.
Trae Abell
@TraeAbell - Nein, das hilft nicht. Seitengeschwindigkeit übernimmt abgelaufene Header in den Cache-Dateien, sobald sie aktiviert wurden, und ich hatte diese ohnehin schon eingerichtet. Am Ende gab ich es einfach auf und schrieb mein eigenes Bildoptimierungsskript.
Billynoah

Antworten:

3

Ich habe festgestellt, dass mod_pagespeed Bilder und andere Ressourcen mit einem Cache-Ablauf von 5 Minuten bereitstellt, wenn sie (noch) nicht in seinem Cache-Verzeichnis verfügbar sind. Nach dem Neustart des Apache-Webservers dauert es eine Weile, bis mod_pagespeed seine maximale Effizienz wiedererlangt.

Es kann hilfreich sein, das Cache-Verzeichnis zu löschen und neu zu erstellen:

sudo mv /var/cache/mod_pagespeed /var/cache/mod_pagespeed.del
sudo rm -rf /var/cache/mod_pagespeed.del/
sudo mkdir /var/cache/mod_pagespeed
sudo chown www-data:root /var/cache/mod_pagespeed/
sudo service apache2 restart

So bestimmen Sie die aktuelle Größe des Cache-Verzeichnisses von mod_pagespeed:

du -hs /var/cache/mod_pagespeed/

So erhöhen Sie die Größe des Festplatten-Cache von 100 MB (Standard) auf 10 GB in der Konfigurationsdatei von mod_pagespeed /etc/apache2/mods-enabled/pagespeed.conf:

ModPagespeedFileCacheSizeKb          10240000
Helge Klein
quelle
Vielen Dank an Helge, aber der Cache ist bereits erstellt, sodass es nichts mit der ersten Erstellung zu tun hat - wie im zweiten Absatz meiner Frage erwähnt. Auf der anderen Seite kann die Größe des Festplatten-Caches so gut aufgerufen werden.
Billynoah
Die Cache-Größe war das Problem für uns, zusammen mit der Tatsache, dass sie nach einem Zeitplan und nicht nach LRU / On-Demand gelöscht wird, wodurch die Seitenleistung zufälliger aussah.
Matt