Отключить кэширвоание FastCGI для определенного location
Igor Sysoev
is at rambler-co.ru
Sat Sep 5 15:11:40 MSD 2009
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;
> > > }
--
Игорь Сысоев
http://sysoev.ru
More information about the nginx-ru
mailing list