Apache: Come verificare se alle richieste viene risposto con dati in cache

Dopo aver abilitato il modulo di caching di Apache per servire copia in cache alle richieste, piuttosto che ripetere continuamente le richieste, è possibile capire dal file di log di Apache se alla pagina richiamata viene risposto con informazioni in cache o meno.

Per fare questo bisogna modificare le stringhe di LogFormat che trovate in /etc/apache/apache.conf (su Debian), aggiungendo alla fine il parametro %{cache-status}e, ovvero avere qualcosa di questo tipo:

LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\" %{cache-status}e" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\" %{cache-status}e" combined
LogFormat "%h %l %u %t \"%r\" %>s %O %{cache-status}e" common

Fatto questo, dopo aver riavviato Apache, se andremo a controllare i logs, noteremo al termine di ogni riga un nuovo parametro che potrà indicarci con “cache hit che la pagina è stata servita con contenuti in cache oppure con altra informazione utile a capire se il contenuti verrà messo in cache oppure è escluso dal salvataggio in cache per qualche motivo.

Nota: piccola nota finale, cosa che spesso mi chiedono. Ma se volessi escludere un file php dalla cache?

E’ possibile farlo in due modi, indicando l’url da escludere nel file /etc/apache2/mods-enabled/cache_disk.conf, es:

CacheDisable /import.php

oppure inserendo come header del file qualcosa di questo tipo:

header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");

enjoy!

Ti interessa acquistare un dominio a prezzi ultraconvenienti? clicca qui

Se hai trovato utili le informazioni su questo blog,
Fai una donazione!
Clicca sul bottone qui sotto o almeno clicca sul banner pubblicitario 🙂



Commenta