Прокси-сервер обратного кэширования Apache - почему он не кэшируется?

StackOverflow https://stackoverflow.com/questions/1008990

  •  06-07-2019
  •  | 
  •  

Вопрос

Я пытаюсь настроить прокси-сервер обратного кэширования для показа рекламной графики (gif, jpg, swf).Проксирование работает нормально и отправляет запрос на исходный сервер, но, похоже, я не могу понять, почему содержимое не кэшируется.Моя текущая конфигурация приведена ниже.Цель состоит в том, чтобы кэшировать все запросы, которые соответствуют префиксу /ca/ URI.Исходный сервер обслуживает файлы с чистыми URL-адресами, без расширений файлов, максимальный возраст контроля кэша = 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.Буду проверять свои разрешения и переходить к отладочным сообщениям...

Это было полезно?

Решение

Добавление этих директив, казалось, привело в действие механизм кэширования.Я полагаю, что это связано с истечением срока действия и заголовками управления кэшем, отправленными с исходного сервера, поскольку я отправляю изображения с 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>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top