Apache Reverse Caching Proxy - почему это не кэширование? - PullRequest
7 голосов
/ 17 июня 2009

Я пытаюсь настроить обратный кеширующий прокси для показа рекламной графики (gif, jpg, swf). Прокси работает нормально и отправляет запрос на исходный сервер, но я не могу понять, почему контент не кэшируется. Мой текущий конфиг ниже. Цель состоит в том, чтобы кэшировать все запросы, которые соответствуют префиксу / ca / ​​URI. Исходный сервер обслуживает файлы с чистыми URL-адресами, без расширений, Cache-control max-age = 1 неделя, установленная в заголовках исходного сервера.

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]

В настоящее время единственное кеширование, которое я видел, на самом деле происходит, это локальные файлы, доступные на прокси-серверах, я ищу то, что мне не хватает, чтобы получить содержимое, извлекаемое из исходного сервера для кэширования.

Мне интересно, связано ли это с mod_cache, не кэширующим, потому что контент выбирается с исходного сервера, а не с места на диске. Ищите способ принудительно кэшировать все запросы, соответствующие этому префиксу.

Спасибо!

p.s. - похоже, у меня есть именно эта проблема: http://mail-archives.apache.org/mod_mbox/httpd-users/200901.mbox/%3C497F6ED3.7080606@gmail.com%3E . Будет проверять мои разрешения и идти через отладочные сообщения ...

1 Ответ

11 голосов
/ 18 июня 2009

Добавление этих директив, казалось, запускает механизм кэширования. Я полагаю, что это связано с истечением срока действия и заголовками управления кэшем, отправляемыми с исходного сервера, поскольку я обслуживаю изображения с помощью Symfony / PHP5, а не непосредственно из файловой системы.

<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>
...