Apache Reverse Caching Proxy: ¿por qué no es el almacenamiento en caché?
-
06-07-2019 - |
Pregunta
Estoy intentando configurar un proxy de almacenamiento en caché inverso para la publicación de gráficos de anuncios (gif, jpg, swf). El proxy funciona bien y envía la solicitud al servidor de origen, pero parece que no puedo entender por qué el contenido no se está almacenando en caché. Mi configuración actual está abajo. El objetivo es almacenar en caché todas las solicitudes que coinciden con el prefijo / ca / ??URI. El servidor de origen está sirviendo los archivos con URL limpias, sin extensiones de archivo, Cache-control max-age = 1 semana establecida en los encabezados del servidor de origen.
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]
Actualmente, el único almacenamiento en caché que he visto en realidad es el de los archivos locales a los que se accede en los servidores proxy, estoy buscando lo que me falta para obtener el contenido obtenido del servidor de origen para almacenar en caché.
Me pregunto si tiene que ver con que mod_cache no se almacene en caché porque el contenido se obtiene del servidor de origen y no de una ubicación en el disco. Buscando una manera de forzar que todas las solicitudes que coincidan con ese prefijo se almacenen en caché.
¡Gracias!
p.s. - parece que estoy teniendo este problema exacto: http://mail-archives.apache.org/mod_mbox/httpd-users/200901.mbox/%3C497F6ED3.7080606@gmail.com%3E . Verificará mis permisos y revisare los mensajes de depuración ...
Solución
Agregar estas directivas pareció acelerar el mecanismo de caché. Supongo que tiene que ver con los encabezados de vencimiento y control de caché enviados desde el servidor de origen, ya que estoy sirviendo imágenes con Symfony / PHP5 en lugar de directamente desde el sistema de archivos.
<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>