> Есть один способ: > http://www.lexa.ru/nginx-ru/msg30320.html > > И второй способ: просто не включать кеширование > на стороне nginx в тех location`ах, где оно не нужно.
Есть и третий способ if ($upstream_status = 304) { set no_cache = 1; } fastcgi_no_cache $no_cache; Ещё как вариант, Nginx вообще не нужно удалять валидаторы из запроса, они всегда должны уходить на бекенд, при получении статуса 304, когда нет файла кеша Nginx, но в заголовке ответа указано что можно кешировать в публичном кеше (не private), только в этом случаи Nginx должен сделать повторный запрос к бекенду без валидаторов для получения нового контента со статусом 200. Но можно и не делать повторный запрос, со временем придет юзер без валидаторов и бекенд отдаст статус 200, в общем Nginx просто надо научить понимать что заголовки Cache-Control в 304 статусе, не означают что нужно кешировать ответ 304, они означают что нужно использовать прежний закешированый ответ 200, по сути fastcgi_no_cache который я написал выше эту проблему так и решает. Я понимаю такая схема сложней для Nginx и ему проще просто всегда удалять валидаторы если нет файла кеша, но я же смотрю с точки зрения бекенда, ему лучше если валидаторы всегда приходят. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,251189,251882#msg-251882 _______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru