Почему-то я не могу заставить Apache mod-cache работать так, как я хочу. Я хочу, чтобы он кешировал прокси-вызов на мой сервер tomcat, который является файлом jsp.В файле jsp отображается текущее время, поэтому я могу заметить, получаю я кешированный ответ или нет .. Это моя конфигурация:
CacheQuickHandler off
CacheLock on
CacheLockPath /tmp/mod_cache-lock
CacheLockMaxAge 5
CacheIgnoreHeaders Set-Cookie
<Location /Kanzan/>
CacheEnable disk
CacheHeader on
CacheDefaultExpire 800
CacheMaxExpire 64000
CacheIgnoreNoLastMod On
#ExpiresActive on
#ExpiresDefault A60
</Location>
ProxyPreserveHost On
ProxyPass /Kanzan/ http://127.0.0.1:8080/Kanzan/
ProxyPassReverse /Kanzan/ http://127.0.0.1:8080/Kanzan/
Все это находится внутри моего виртуального хоста. Я записываю это в 5 разных файлов,
cached-requests.log
cache.log
invalidated-requests.log
revalidated-requests.log
uncached-requests.log
Но только cache.log и 2 последних получают контент. В последнем файле я всегда получаю
127.0.0.1 [21/sep/2018xxxxx +0200] "GET /Kanzan/testCache.jsp HTTP/1.1" 200 472
, а в cache.log я неоднократно получаю
cache miss: attempting entity save
Я получаю данные, сохраненные в / var / cache / apache2 / mod_cache_disk, но кеш никогда не используется, поскольку время продолжает обновляться при перезагрузке. .
ОБНОВЛЕНИЕ:
Теперь я понимаю, что кеш работает ... НО ... он не работает так, как я хочу. Когда я нажимаю кнопку «Обновить» в своем браузере, я хочу, чтобы кешированное значение на сервере возвращалось, если срок его действия не истек ... вместо этого, когда я нажимаю «Обновить», chache обновляется! Как сделать так, чтобы кешированное значение не обновлялось всякий раз, когда новому пользователю требуется эта страница ??
Просто добавьте это
CacheIgnoreCacheControl on