Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Отключить кэширвоа ние FastCGI для определенного location
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
|