Domanda

Sto tentando di impostare un proxy di cache inversa per la pubblicazione di grafica pubblicitaria (gif, jpg, swf). Il proxy funziona correttamente e invia la richiesta al server di origine, ma non riesco a capire perché il contenuto non viene memorizzato nella cache. La mia configurazione attuale è al di sotto. L'obiettivo è memorizzare nella cache tutte le richieste che corrispondono al prefisso / ca / ??URI. Il server di origine fornisce i file con URL puliti, senza estensioni di file, controllo della cache max-age = 1 settimana impostata nelle intestazioni del server di origine.

ProxyRequests Off
<Proxy *>
 Order deny,allow
 Allow from all
</Proxy>
<IfModule mod_disk_cache.c>
 CacheEnable disk /
 CacheRoot "/var/cache/mod_proxy"
 CacheDirLevels 3
 CacheDirLength 5
 CacheIgnoreCacheControl On 
</IfModule>

RewriteCond %{REQUEST_URI} ^/ca/*
RewriteRule ^/(.*)$ http://origin.webserver.com/$1 [P,L]

Attualmente, l'unica memorizzazione nella cache che ho visto effettivamente accadere è quella dei file locali accessibili sui server proxy, sto cercando ciò che mi manca per ottenere il contenuto recuperato dal server di origine da memorizzare nella cache.

Mi chiedo se abbia a che fare con la mod_cache che non viene memorizzata nella cache perché il contenuto viene recuperato dal server di origine e non una posizione sul disco. Alla ricerca di un modo per forzare la memorizzazione nella cache di tutte le richieste corrispondenti a quel prefisso.

Grazie!

P.S. - sembra che sto avendo questo problema esatto: http://mail-archives.apache.org/mod_mbox/httpd-users/200901.mbox/%3C497F6ED3.7080606@gmail.com%3E . Controllerò i miei permessi e esamineremo i messaggi di debug ...

È stato utile?

Soluzione

L'aggiunta di queste direttive sembrava dare il via al meccanismo della cache. Immagino che abbia a che fare con le intestazioni di scadenza e di controllo della cache inviate dal server di origine poiché sto offrendo immagini con Symfony / PHP5 anziché direttamente dal filesystem.

<IfModule mod_disk_cache.c>
    CacheEnable disk /
    CacheRoot "/var/cache/mod_proxy"
    CacheDirLevels 3
    CacheDirLength 5
    CacheIgnoreCacheControl On
    CacheMaxFileSize 100000000
    CacheIgnoreNoLastMod On
    CacheMaxExpire 1209600
    CacheIgnoreQueryString On
</IfModule>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top