Re: proxy_cache_key и fastcgi_cache_key

Maxim Dounin mdounin at mdounin.ru
Mon Jan 13 12:22:21 UTC 2014


Hello!

On Fri, Jan 10, 2014 at 09:57:21PM +0400, Валентин Бартенев wrote:

> On Friday 10 January 2014 19:42:18 Maxim Dounin wrote:
> > Hello!
> > 
> > On Fri, Jan 10, 2014 at 11:54:22AM +0200, Gena Makhomed wrote:
> > 
> > > On 09.01.2014 16:33, Maxim Dounin wrote:
> > > 
> > > >>>Смысл значения по умолчанию для proxy_cache_key состоит в том, что
> > > >>>идентифицируется тот ресурс, куда осуществялется проксирование.
> > > >>
> > > >>>Тем самым, если в разных виртуальных серверах проксирование
> > > >>>осуществляется в одно и то же место - будет использован
> > > >>>один и тот же элемент кеша.
> > > 
> > > Ситуация, когда все размещенные на одном сервере виртуальные хосты
> > > имеют 100% идентичный контент и разные домены практически невозможна.
> > > Такая настройка nginx сейчас может появиться только в результате ошибки.
> > > 
> > > Еще дефолтовая настройка nginx на $proxy_host может быть полезной
> > > тем, кто "грабит корованы", то есть показыват на своем сайте контент,
> > > который был получен с других сайтов путем проксирования с кешированием.
> > 
> > Например, это может быть отдельный location под общие элементы 
> > и/или ssi-инклуды.  Именно под такие задачи оно исходно и   
> > программировалось, и именно потому и стоят такие значения по 
> > умолчанию - запрашиваем с бекенда то, что указано в proxy_pass, и 
> > кешируем то, что запрашивали.
> > 
> > Просто следует понимать, что задач - больше одной.  И хорошее 
> > решение для одной задачи - может оказаться плохим для другой.
> > 
> > Проблема, на самом деле, в том, что прописанное в конфиге 
> > "proxy_set_header Host $host" существенно меняет суть запроса к 
> > бекенду, а значение по умолчанию proxy_cache_key об этом изменении 
> > не знает, его надо обучать этому вручную.  Возможно, именно с этой 
> > стороны и следует подойти к этому вопросу.
> > 
> [..]
> 
> Лично мне нравится идея привести значение proxy_cache_key по умолчанию
> к таковому fastcgi_cache_key, т.е. отсутствует и требуется задавать явно.
> 
> ИМХО это полезно, как с точки зрения понятности конфига, так и с точки
> зрения унификации между различными upstream-модулями.

Нет, я против.  В http кешируемость определена достаточно хорошо, 
и идентификация запрашиваемого документа - это хороший, годный 
метод кеширования.  Заставлять пользователя самостоятельно 
изобретать ключ кеширования - это негодный с точки зрения удобства 
использования вариант.

-- 
Maxim Dounin
http://nginx.org/



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