Отключить кэширвоание FastCGI для определенного location

Igor Sysoev is at rambler-co.ru
Tue Sep 8 11:40:12 MSD 2009


On Tue, Sep 08, 2009 at 10:18:08AM +0400, Sergey V. Sokolov wrote:

> On Суббота 05 сентября 2009 15:11:40 Igor Sysoev wrote:
> > On Sat, Sep 05, 2009 at 02:38:23PM +0400, Sergey V. Sokolov wrote:
> > > On Суббота 05 сентября 2009 00:45:46 Dmitry wrote:
> > > > Грубо так:
> > > >
> > > > location /ajax/(.*\.php)$ {
> > > > .... fastcgi_cache off;
> > > > 	fastcgi_pass ...
> > > > ......
> > > > }
> > >
> > > Т.е. получается для каждого location нужно прописать все те же настройки
> > > FastCGI, но отключить кэш. Большое дублирование получается, а если
> > > локейшенов для которых нужно отключить не один :(
> >
> > Да. Есть два подхода к конфигурации location'ов:
> >
> > 1) Выбирается самый подходящий location и используется его конфигурация.
> >    При этом наследуется конфигурация предыдущих уровней (server и http).
> >    Удобно, особенно, если используются только статические location'ы,
> >    для конфигураций с сотнями location'ов.
> >
> > 2) Проходим через все совпавшие location'ы и по пути собираем все
> > настройки. Удобно для простых конфигураций с парой location'ов (типа hello
> > world!). При увеличении числа location'ов боьше десятка добавление нового
> > location'а превращается в АДЪ.
> >
> > В nginx'е используется первый подход, потому что в своё время я на Апаче
> > вдоволь наконфигурился по второму методу (там этот бардак обеспечивается
> > наличием Directory, DirectoryMatch, Files/FilesMatch,
> > Location/LocationMatch, причём сначала на уровне глобального сервера, а
> > потом ещё и виртуального, ну и для полноты ощущений - раскиданный по
> > каталогам всеми любимый .htaccess).
> 
> Было бы удобно иметь, опцию которая отвечает за объединение конфигураций всех 
> подходящих локейшенов. Т.е. если опция включена, то все настройки со всех 
> подходящих локешейнов суммируются и перекрываются в порядке следования в 
> конфиге, а если отключена то стандарное поведение, индивидуальные 
> неперекрывающиеся настройки.
> 
> В Апачевском методе тоже есть некоторые плюсы.

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

Типичный Апачевский сайт начинается с одного глобального сайта с
Directory'ями, Location'ами и пары RewriteRule'ов. Потом появляются
дополнительные VirtualHost'ы и как-то всё вместе живёт, потому что
меняют по минимуму (лениво). Потом же конфигурации начинают конфликтовать
и наступает АДЪ. Поэтому на Апаче нужно сразу делать VirtualHost и
использовать только Location/LocationMatch.  


-- 
Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list