ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
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 Суббота 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).

Было бы удобно иметь, опцию которая отвечает за объединение конфигураций всех 
подходящих локейшенов. Т.е. если опция включена, то все настройки со всех 
подходящих локешейнов суммируются и перекрываются в порядке следования в 
конфиге, а если отключена то стандарное поведение, индивидуальные 
неперекрывающиеся настройки.

В Апачевском методе тоже есть некоторые плюсы.

> > Или я ошибаюсь и все остальные настройки FastCGI будут применены из
> > location ~ \.php$
> > ???
>
> Нет. Общие настройки можно описать на уровне server. Или http.
>
> > > С Уважением,
> > > Дмитрий.
> > >
> > > 04.09.2009 23:28, Sergey V. Sokolov пишет:
> > > > Как реализовать сабж?
> > > >
> > > > Есть вот такой кусок конфига:
> > > >
> > > > location ~ \.php$ {
> > > >          fastcgi_param   DOCUMENT_ROOT      /www/zavolga;
> > > >          fastcgi_param   SCRIPT_FILENAME
> > > > /www/zavolga$fastcgi_script_name; fastcgi_ignore_headers 
> > > > Cache-Control Expires;
> > > >          fastcgi_pass            unix:/var/tmp/php-fpm-zavolga.sock;
> > > >          fastcgi_cache          zavolga;
> > > >          fastcgi_cache_key
> > > > unix:/var/tmp/php-fpm-zavolga.sock/$host$request_uri;
> > > > fastcgi_cache_valid 6h;
> > > >          fastcgi_cache_valid    any 5m;
> > > >
> > > >          fastcgi_index           index.php;
> > > >          include                 fastcgi_params_chrooted;
> > > > }
> > > >
> > > > Как отключить кэширование для некоторых location.
> > > >
> > > > Например это не помогло.
> > > > location /ajax {
> > > >         fastcgi_cache off;
> > > > }

-- 
С Уважением,
Сергей В. Соколов

Компьютерная сеть Zavolga.Net
ООО "Горизонт", г. Ярославль
Пишите: sokol@xxxxxxxxxxx
Звоните: 333-402



 




Copyright © Lexa Software, 1996-2009.