Proxy Apache Reverse Caching Proxy - Pourquoi ne met-il pas en cache?
-
06-07-2019 - |
Question
Je tente de configurer un proxy de mise en cache inversée pour la diffusion d'images publicitaires (gif, jpg, swf). Le proxy fonctionne bien et envoie la demande au serveur d'origine, mais je n'arrive pas à comprendre pourquoi le contenu n'est pas mis en cache. Ma configuration actuelle est ci-dessous. L'objectif est de mettre en cache toutes les demandes qui correspondent au préfixe / ca / ??URI. Le serveur d'origine sert les fichiers avec des URL propres, sans extension de fichier. Cache-control max-age = 1 semaine définie sur les en-têtes du serveur d'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]
Actuellement, la seule mise en cache que j'ai jamais vue est celle des fichiers locaux accédés sur les serveurs proxy. Je cherche ce qui me manque pour que le contenu extrait du serveur d'origine soit mis en cache.
Je me demande s'il ne s'agit pas de la mise en cache de mod_cache, car le contenu est extrait du serveur d'origine et non d'un emplacement sur le disque. Vous recherchez un moyen de forcer la mise en cache de toutes les demandes correspondant à ce préfixe.
Merci!
p.s. - on dirait que j'ai exactement le même problème: http://mail-archives.apache.org/mod_mbox/httpd-users/200901.mbox/%3C497F6ED3.7080606@gmail.com%3E . Sera vérifier mes autorisations et aller sur les messages de débogage ...
La solution
L'ajout de ces directives a semblé donner le coup d'envoi au mécanisme de cache. Je suppose que cela a à voir avec les en-têtes d'expiration et de contrôle du cache envoyés par le serveur d'origine, car je diffuse des images avec Symfony / PHP5 plutôt que directement depuis le système de fichiers.
<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>