Mod_cache - это не логирование и не кеширование
Apache 2.2 на RedHat 6.3. У меня есть виртуальный хост, который настроен так:
<VirtualHost xxx.xxx.xxx.xxx:80>
ServerAdmin some@email.com
DocumentRoot /home/xxxxx/Sites/xxxxxxx.com/htdocs
ServerName xxxxxxx.com
ServerAlias xxxxxxxx.com
SuexecUserGroup xxxx xxxx
suPHP_UserGroup xxxx xxxx
## a cache hit will log -, while a cache miss will log 1.
SetEnv CACHE_MISS 1
LogFormat "%h %l %u %t \"%r\" %>s %b %{CACHE_MISS}e" common-cache
CustomLog /var/log/cache.log common-cache
<IfModule mod_mime_magic.c>
# MIMEMagicFile /usr/share/magic.mime
MIMEMagicFile conf/magic
</IfModule>
<IfModule mod_cache.c>
<IfModule mod_disk_cache.c>
CacheRoot "/var/www/cache"
CacheDefaultExpire 3600
CacheIgnoreCacheControl On
CacheEnable disk /
CacheDirLevels 2
CacheDirLength 1
CacheMaxFileSize 1000000
</IfModule>
</IfModule>
# support perl + cgi
ScriptAlias /cgi-bin/ /home/ls414-100/Sites/xxxx.com/htdocs/cgi-bin/
<Directory /home/xxxx/Sites/xxxxx.com/htdocs/cgi-bin/>
Options ExecCGI -Indexes -MultiViews
AddHandler cgi-script cgi pl
</Directory>
</VirtualHost>
Но он не будет регистрировать попадания в кеш.
[25/Sep/2013:15:24:22 -0400] "GET /icons/stuff5.jpg HTTP/1.1" 304 - 1
Обратите внимание на "1" в конце, это означает, что он не кешируется.
Любая помощь будет оценена.
2 ответа
Я вижу только то, что вы заставляете CACHE_MISS иметь значение 1
SetEnv CACHE_MISS 1
Таким образом, это всегда будет 1 в выводе журнала. Посмотрите на код ответа 304. Это означает, что запрошенный файл не был изменен, поэтому он может обслуживаться кешем браузера.
У меня очень похожая настройка для записи попаданий в кеш в логах. Наиболее вероятные причины, по которым вы перестаете видеть попадания в кеш, исходя из моего опыта:
- разрешения на каталог кеша неверны.
- не хватило места
df -h
или инодыdf -ih
в вашей файловой системе кеш
Я бы предложил вам пересмотреть ваше решение использовать Apache httpd в качестве кеша; У меня было много проблем с этим в прошлом с странными ошибками, неполными изображениями, по-настоящему бесполезным оправданием для инструмента обслуживания кэша, который является htcacheclean (вы используете это право?), Мое последнее разочарование (которое вызывает повторное -архитект), что он не будет кэшировать 206 ответов (MP4, PDF).
Вы можете многое сделать, чтобы уменьшить количество объектов, которые вы запрашиваете для кэширования httpd; отключение Vary User-Agent - большая победа. Вы также можете переписать заголовки запросов, связанные со сжатием, что помогает значительно сократить количество бесполезных вариантов, которые вы в конечном итоге кэшируете.