2011-09-06 3 views
0

Я использую Лак, не касаясь какой-либо конфигурации (только пересылка PORT на Apache до 8080).Лак кэшировать слишком много файлов, а не кешировать php

Но у меня два вопроса:

  • посещаю URL изображения, я удалить изображение, и я захожу снова и она существует ... Varnish кэшируются это ... как я могу сказать, лак, чтобы посмотреть первый если файл AT LEAST существует, прежде чем подавать его из своего кеша?

  • Файлы PHP не кэшируются (я имею в виду, содержимое HTML, генерируемое PHP). Я всегда вижу в заголовках: Age: 0 ... какая-нибудь подсказка?

Спасибо!

ответ

1

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

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

Однако существуют способы инструктировать лак, чтобы не кэшировать URL-адреса навсегда. Например; если ваш back-end ответ инструктирует любой кеш, чтобы не повторно использовать результат (некоторые заголовки HTTP-ответа указывают на это), лак не будет кэшировать его. Лак будет достаточно умным (по умолчанию), чтобы не кэшировать ответы с помощью файлов cookie (что, вероятно, отвечает на ваш второй вопрос). Вы можете дать лаку только кешировать ответ в течение определенного периода времени (например, 30 секунд), поэтому ваши удаления будут подобраны довольно быстро. После того, как вы изменили/удалили файл, вы можете очистить URL-адреса от лака. Если ваш сервер backend не говорит об этом правильно с заголовками ответов, вы можете отменить это поведение, написав свой собственный .vcl-файл.

Файлы PHP не кэшируются (я имею в виду, что HTML-контент сгенерировал с помощью PHP). Я всегда вижу в заголовках: Age: 0 ... какая-нибудь подсказка?

Можно догадаться: вы устанавливаете куки. Но это действительно поможет, если вы добавите заголовки ответов на свой вопрос.