¡mod_mem_cache ofrece contenido incorrecto!

¡mod_mem_cache ofrece contenido incorrecto!

Acabo de habilitar mod_mem_cacheen un servidor Apache2/PHP5 que ejecuta una aplicación personalizada y quedé horrorizado por el resultado. De repente, se estaban publicando imágenes incorrectas y una vez me di cuenta de que una solicitud de una página HTML mostraba una página CSS. ¿Qué podría estar causando esto? La configuración es la siguiente:

CachéHabilitar memoria /
MCacheTamaño 204800
CachéPredeterminadoExpirar 3600
CacheIgnoreHeaders Set-Cookie
MCacheMinObjectTamaño 100
MCacheMaxObjectTamaño 5242880
Algoritmo de eliminación de MCache LRU

Respuesta1

Internamente dentro de mod_cache y mod_*_cache, las claves de búsqueda son sumas de verificación bastante largas, del URI canónico y cualquier parámetro Vary: (para contenido negociado). Es increíblemente improbable que estas claves de búsqueda colisionen, por lo que si recibe respuestas incorrectas para la configuración anterior, parece un error.

Soy uno de los autores de los módulos de almacenamiento en caché y si pudiera enviarme por correo los detalles de la solicitud ([correo electrónico protegido]) y[correo electrónico protegido], o presentar un error con algunos detalles que podemos utilizar para reproducir -http://httpd.apache.org/bug_report.html- Podemos seguir adelante.

O siéntase libre de publicarlos aquí y solucionaremos el problema.

Respuesta2

Encontré el problema. Estaba usando mod_rewrite para reescribir las URL de archivos que no existían en un script PHP que enviaría esas URL al módulo adecuado. Debido a que todas estas URL virtuales se reescribían en la misma URL, mod_cache se estaba confundiendo. Para resolver esto, cambié la siguiente parte de mi configuración de Apache:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* /dispatch.php

A:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) /dispatch.php/$1

¡Y ahora el almacenamiento en caché parece funcionar perfectamente!

información relacionada