Come faccio a impedire a lighttpd di memorizzare i file statici, anche se modificati su disco?

Sto utilizzando lighttpd per servire file statici. Ho un gruppo di immagini in un dir che aggiorgo regolarmente. Ciò cambierà il contenuto del file (e il file system) e la data di modifica, ma non il nome del file.

Quando accedo i file tramite http, gli aggiornamenti non vengono presi in considerazione e leggermente servono il vecchio file. Posso rinominare manualmente il file a qualcosa di diverso, poi lighttpd restituirà un errore 404 e se rimetto il file, riceverò la versione corretta aggiornata. Sembra che la lightty utilizza un qualche tipo di meccanismo di cache propria (che va bene) per restituire i file statici. Sfortunatamente, sembra che questo meccanismo non si aggiorna quando i file vengono modificati.

Ho controllato tramite Wireshark e il mio browser sta facendo veramente una richiesta al file, questo non è un problema di cache del browser. Restituisce un errore 200 quando lo richiede da una cache vuota e un altro non modificato 304, come previsto. Ma il file viene restituito con un'intestazione errata Ultima modifica che non riflette l'ultima data di modifica effettiva.

Forse c'è una direttiva di configuration che non sono a conoscenza?

Vorrei che i file restituiti da Lighty riflettessero direttamente le modifiche apportte al disco o alless potessero invalidare la sua cache.

Aggiornamento per chiunque abbia seguito questa domanda: ho trovato un colpevole. Se aggiorni un file statico, Lighty non restituisce il nuovo contenuto, ma restituisce la nuova Content-Length nelle sue intestazioni, con conseguente spazzatura visualizzata. Se compro il file con mod_compress, il problema si allontana poiché mod_compress utilizza il proprio sistema di cache. Purtroppo, non posso comprimere tutti i file (file di image per esempio). Quindi è solo una correzione parziale, ma tornerò più tardi e cercherò di trovare una soluzione.

  • Lighttpd non può creare php-fastcgi.socket
  • Come triggersre correttamente il log degli errori in lighttpd?
  • Che cos'è la versione di "mod_substitute" di lighttpd?
  • Come proteggere Lighttpd da attacchi DOS e da inondazioni?
  • Come posso impostare la password enableencrypt con più domini su un server lighttpd con ubuntu 16.04?
  • tenere in vita o non tenere in vita
  • C'è un modo per controllare l'emittente dei certificati client in lighttpd?
  • Posso impostare più certificati SSL per host virtuali con Lighttpd?
  • 5 Solutions collect form web for “Come faccio a impedire a lighttpd di memorizzare i file statici, anche se modificati su disco?”

    Ho finalmente trovato la questione. E viene da VirtualBox.

    Quando si modifica un file nell'host (Win), lighttpd nell'ospite (Linux) non aggiorna correttamente il contenuto del file (ma aggiorna correttamente la dimensione del file), restituendo così contenuti limitati o confusi.

    Smontare le unità condivise e reinstallarle, oppure modificare i file direttamente nell'ospite, ha risolto il problema.

    Ci sono voluti 6 mesi per finalmente capirlo.

    Non si accenna se si dispone di mod_cache installato o less? Questo module predefinito è 'abilitato' quando installato.

    Mi dispiace per suggerirlo, ma agendo su Etags aiuto?

    Prova queste voci etag e vedi se ti aiutano:

    Regole di controllo della cache per lighthttpd

    Provare a impostare la cache di stat motore a 'distriggersto':

    server.stat-cache-engine = "disable' 

    Questa opzione lighttpd ha funzionato per me

     server.network-backend = "writev" 
    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.