nginx - очистить кеш на HTTP PUT или POST - PullRequest
5 голосов
/ 10 октября 2011

Я тестирую nginx как кэш обратного прокси с ресурсами REST (Spring MVC + ETag).Каждый GET кэшируется нормально.

Можно ли очистить кэш nginx для определенного ресурса всякий раз, когда он обновляется через HTTP PUT или HTTP POST?

ps: я также тестирую кэш лака, но у меня такое же сомнение.

Спасибо!

1 Ответ

0 голосов
/ 10 декабря 2011

Вы не указали, какой тип кэширования вы используете, поскольку в Nginx есть несколько опций.

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

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

  2. Кэширование FastCGI То же, что и кеширование прокси. Нет смысла для типа файлов, которые могут быть загружены с помощью POST или PUT.

  3. Memcache Здесь элементы хранятся в оперативной памяти, и в этом есть преимущество. Существуют базовый модуль Memcache и расширенные модули Memc, оба из которых имеют процедуры как для добавления, так и удаления из кэша.

Однако ваш запрос предполагает, что вы используете один из двух предыдущих вариантов, и, как уже было сказано, делать это абсолютно бесполезно для типов файлов, которые могут быть загружены с использованием POST или PUT. При кэшировании в Nginx они будут считываться с места на диске, на котором они будут храниться, так же, как если бы на него ссылались с исходного места на диске. Кроме того, накладываются издержки на копирование их из исходного расположения диска в другое расположение диска.

За исключением, конечно, если я что-то упустил.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...