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

Sergey V. Sokolov sokol at zavolga.net
Sat Sep 12 15:18:32 MSD 2009


Еще один вопросик, как отключить кэширование для определенной подсети.
Например чтобы для 192.168.50.0/24 ничего не кэшировалось.

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 at zavolga.net
Звоните: 333-402





More information about the nginx-ru mailing list