ПРОЕКТЫ 


  АРХИВ 


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]

простая-директива if ск олько-угодно-сложное-усло вие;



Igor Sysoev wrote:

Может быть, что-то типа

if (...) {
  fastcgi_no_cache;
}

было бы универсальнее?

(А в идеальном мире - возможность вписыватьлюбые директивы fastcgi_cache*
внутрь iif-ов.)

Сейчас именно конструкция "if (...) { }" - это хак внутри nginx'а.
Поэтому и любые директивы внутри if и не разрешены, а те, что разрешены
не всегда работают так, как ожидается.

Я скорее сделаю предикаты типа

fastcgi_no_cache   "$http_pragma == 'no-cache' && $trusted_addresses";

чем буду лечить "if (...) { }".

конструкция "if (...) { }" является нежелательной, потому что
создается скрытый location, и не все работает так как ожидалось.

может быть вместо синтаксиса

fastcgi_no_cache "$http_pragma == 'no-cache' && $trusted_addresses";

limit_conn conn=5 zone=resp_zone if=$limit_conn;

сделать обобщенный вариант по аналогии с perl:

простая-директива if сколько-угодно-сложное-условие;

в этом случае не нужно будет делать скрытый location
для if и останется возможность для развития, если в будущем
будут добавлены функции, например, md5(  ), логические операторы и т.п.

fastcgi_no_cache if "$http_pragma == 'no-cache' && $trusted_addresses";

limit_conn conn=5 zone=resp_zone if $limit_conn;

PS http://perldoc.perl.org/perlsyn.html#Statement-Modifiers

По-хорошему это надо бы делать как-то так:

fastcgi_no_cache   $cookie_debugMode;
fastcgi_no_cache   $arg_nc;
fastcgi_no_cache   $http_authorization;
fastcgi_no_cache   $http_pragma;

Возможно, завтра сделаю.

2009/10/6 1nsk.ru <alfa@xxxxxxx>

А как обернуть всё это дело в

?
if ($http_cookie !~ "user_id") {
#кэшируем только гостям
}

А то в if нельзя fastcgi_store


--
Best regards,
 Gena





 




Copyright © Lexa Software, 1996-2009.