2012-01-25 3 views
7

Я надеюсь, что кто-то может посоветовать о правильном способе получения лака для отправки заголовков управления кешем. В настоящее время моя конфигурация отправляет клиентам «Cache-Control: no-cache».Как установить Заголовки управления кэшем лака

Заранее спасибо всем, кто мог бы быть в состоянии помочь ...

+0

Это может помочь, если вы объясните, что вы хотите. Какая конфигурация (лак или ваш сервер) отправляет заголовки без кеша? Вы можете переопределить эти заголовки в Varnish, но зависит ли это от «правильного» от семантики ваших ответов (они могут использоваться повторно, над клиентами, как долго и т. Д.). – ivy

+0

@ivy, Спасибо за ваш ответ. То, что я пытаюсь выполнить, состоит в том, чтобы ** ** Larnish ** отправлять заголовки кеш-контроля, которые я вручную указываю, независимо от того, что back-end отправляет в Larnish. –

ответ

11

Админцетр не посылает «Cache-Control: нет-кэш», чтобы лак, который включает в себя две вещи:

  • Лак не будет хранить ответ в кеше (так что следующий поиск не сработает)
  • Ваши клиенты (браузеры и промежуточные прокси) не будут кэшировать ответы (и запрашивать их снова и снова).

Решение прост: удалите заголовки управления кешем после получения ответа от внешнего сервера (и перед сохранением их в кеше).

В файле VCL сделать:

sub vcl_fetch { 
    remove beresp.http.Cache-Control; 
    set beresp.http.Cache-Control = "public"; 
} 

Вы можете сделать это только для определенных URL (завернуть его в (if req.url ~ "") логике) и сделать путь более продвинутые вещи.

+1

Начиная с Varnish 4.0 'vcl_fetch' был заменен на' vcl_backend_response' –

3

Varnish игнорирует Cache-Control: nocache в соответствии с документацией. Вот доказательство, подтверждающее, что:

http://drupal.org/node/1418908

Чтобы получить этот результат, вы должны обнаружить заголовок Cache-Control. nocache., а затем аннулировать кеш, установить ответ на бэкэнд для кеширования или задать max-age: 0 в другом заголовке (я забыл имя прямо сейчас).

+0

Эта проблема теперь закрыта. Я думаю, что плакат понял, что совершил ошибку. –

0

[ivy] имеет хороший совет, и/или он немного усложняется, когда вы пытаетесь подчиниться намерениям серверов для кэширования конечных пользователей (браузеров). Я нашел this resource быть полезными для понимания способа настройки лака держаться на кэш больше, чем браузер проинструктирован ...

https://www.varnish-cache.org/trac/wiki/VCLExampleLongerCaching