Re: Разница между OK и DECLINED
Maxim Dounin
mdounin на mdounin.ru
Ср Янв 26 14:43:12 MSK 2011
Hello!
On Wed, Jan 26, 2011 at 12:09:52PM +0200, Дмитрий Бежнар wrote:
> Здравствуйте,
>
> помогите разобраться между OK и DECLINED при возврате с perl.
>
> Как я понимаю что при OK - останавливает выполнение, а DECLINED
> продолжает выполнение.
>
> Соотвественно:
>
> локейшн
>
> location / {
> perl hello::handler;
> . fastcgi_pass 127.0.0.1:9000;
> include fastcgi_params;
> }
>
> и
> sub handler {
> my $r = shift;
> $r->send_http_header("text/html");
> $r->print("hello2!\n<br/>");
>
> return OK;
> }
>
> должен отдать клиенту хело, а если вернуть DECLINED, то должен
> выполнить fastcgi.
>
> Но у меня не останавливается выполнение при OK.
> Так и должно быть или ...
И perl, и fastcgi_pass - определяют безусловные обработчики для
location'а. Какой из них будет работать - определяется тем, какая
директива указана последней в конфиге.
В приведённом выше конфиге будет работать fastcgi, perl даже и не
позовётся.
Возврат DECLINED позволяет передать управление стандартной цепочке
модулей, зарегистрированных в content-фазе (random_index, index,
autoindex, dav, gzip_static, static). Из perl'а в fastcgi так
передать управление нельзя.
Maxim Dounin
Подробная информация о списке рассылки nginx-ru