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

Dymytry nginx-forum at nginx.us
Wed Sep 25 08:58:31 UTC 2013


День добрый! 
Изучаю nginx, разбираюсь в кэшировании, имею browser + nginx reverse proxy +
nginx web-server.

Допустим клиент сделал запрос, прокси перевел его на бэкенд, тот ответил и
прокси отдал ответ клиенту. Допустим бэкенд проставил какие-то заголовки,
связанные с кэшем, например: 
Cache-Control: no-cache         (или)
Cache-Control: max-age=100000   (или)
Expires: 'Next Friday'

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

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

Я правильно понимаю, или нет?
Так работают все прокси, и squid, и разные публичные прокси в интернете?
Изменить ли что-то, если nginx-proxy соединяется с клиентом по SSL?

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243125,243125#msg-243125



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