On 08.01.2014 0:20, S.A.N wrote: >> Кстати, похоже, что есть вариант еще проще, используя директиву >> fastcgi_cache_bypass для запросов с If-Modified-Since и If-None-Match >> и выставляя в ответе заголовок X-Accel-Expires: 0 >> если статус ответа backend`а будет 304.
Да, у меня крутился в голове вариант, использовать куки для fastcgi_no_cache. Схема следующая, скрипт который отдает приватный кеш, будет отдавать куку с path=$self_path, данная кука будет приходит только на данный uri, таким образом её можно использовать для условия в fastcgi_no_cache для выключения Nginx кеширования,
Директива fastcgi_no_cache не смотрит на куки клиентского запроса, она смотрит на ответ backend`а и по этому ответу решает, помещать его в кеш nginx или нет. А если надо чтобы клиентский запрос уходил мимо кеша nginx прямо на backend для этого есть совсем другая диркетива, fastcgi_cache_bypass. Это же в документации все написано. Очень трудно придумать ситуацию, когда этих двух директив может оказаться не достаточно для настройки кеширования.
осталось только проверить, удаляет Nginx клиентские заголовки если выполняется условия fastcgi_no_cache, если не удаляет, тогда этот вариант выглядит лучше чем прописывать location в конфиге Nginx.
Для тех страниц, которые не надо сохранять в кеше nginx - возвращать в ответе backend`а заголовок X-Accel-Expires: 0 и такой ответ не будет попадать в кеш nginx, вне зависимости от того, что записано во всех остальных заголовках этого ответа. В том числе и в заголовке ответа Cache-Control. Чем такой простой и удобный вариант Вам не подходит, я не понимаю. -- Best regards, Gena _______________________________________________ nginx-ru mailing list [email protected] http://mailman.nginx.org/mailman/listinfo/nginx-ru
