Acabo de habilitar mod_mem_cache
en 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!