Re: Учитывает ли nginx-прокси кэш-заголовки с бэкенда?

Ruslan Ermilov ru at nginx.com
Wed Sep 25 09:22:18 UTC 2013


On Wed, Sep 25, 2013 at 04:58:31AM -0400, Dymytry wrote:
> День добрый! 
> Изучаю nginx, разбираюсь в кэшировании, имею browser + nginx reverse proxy +
> nginx web-server.
> 
> Допустим клиент сделал запрос, прокси перевел его на бэкенд, тот ответил и
> прокси отдал ответ клиенту. Допустим бэкенд проставил какие-то заголовки,
> связанные с кэшем, например: 
> Cache-Control: no-cache         (или)
> Cache-Control: max-age=100000   (или)
> Expires: 'Next Friday'
> 
> Вопрос 1: следующий запрос клиента к этому ресурсу будет обработан с учетом
> этих заголовков?

Ответ на этот вопрос есть в документации:
http://nginx.org/ru/docs/http/ngx_http_proxy_module.html#proxy_ignore_headers

> Вопрос 2: как nginx-proxy понимает что ресурс stale и его не надо отдавать
> клиенту, а надо спросить бэкенд? (кроме директивы proxy_cache_valid) Может
> ли он понять это из заголовков ответа бэкенда?

Ответ на этот вопрос есть в документации:
http://nginx.org/ru/docs/http/ngx_http_proxy_module.html#proxy_cache_use_stale

> Вопрос 3: может ли клиент заставить прокси закрузить свежую версию ресурса,
> которая еще не истекла согласно proxy_cache_valid?

Может, если администратор nginx сочтёт нужным:
http://nginx.org/ru/docs/http/ngx_http_proxy_module.html#proxy_cache_bypass

> Я пробую играть с заголовками Cache-Control прокси и бэкенда, и насколько я
> могу судить, если ресурс закэшировался в прокси ничто не поможет мне
> получить его свежую версию кроме удаления кэша или истечения
> proxy_cache_valid. То есть "модель" кэша nginx reverse proxy это просто
> веб-сервер с контентом, равным тому, что удалось закэшировать, а что именно
> кэшировать определяется тем, не ставит ли бэкенд Cache-Control: no-cache или
> no-store; заголовки Expired, Cache-Control: max-age бэкенда не учитываются.
> 
> Я правильно понимаю, или нет?
> Так работают все прокси, и squid, и разные публичные прокси в интернете?
> Изменить ли что-то, если nginx-proxy соединяется с клиентом по SSL?



Подробная информация о списке рассылки nginx-ru