ПРОЕКТЫ 


  АРХИВ 


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: порядок прохождения http-фаз сервера


  • To: nginx-ru@xxxxxxxxx
  • Subject: Re: порядок прохождения http-фаз сервера
  • From: Oleg <lego12239@xxxxxxxxx>
  • Date: Mon, 18 Mar 2013 20:40:15 +0400
  • Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1363625021; bh=wFRPPAxcmj+9x4cdsjChbN2hSFjJ+X8jD9P9jzeGgcQ=; h=Date:From:To:Subject:Message-ID:Reply-To:Mail-Followup-To: References:MIME-Version:Content-Type:Content-Disposition: Content-Transfer-Encoding:In-Reply-To:User-Agent; b=DbT0OR1a4AjObWSk7A7Jqoo3tCo+aEGNNgfExcULv/Mm4DP6BRdpnCsQBN387gMot q5PfqrFRhgDKBq73iDgAmDH94zHUEDTEy5IsgLT5DBuNAEAtRzJB1wHiSoqSs0ebFJ ZVBqFSpTKy0pUCxSDXc79MclBHLGa+4uTzH70Wl8=
  • In-reply-to: <20130318160054.GF15378@mdounin.ru>
  • Mail-followup-to: nginx-ru@xxxxxxxxx
  • References: <20130318132425.GA30673@localhost> <20130318134042.GB15378@mdounin.ru> <20130318143453.GA23958@localhost> <20130318145322.GD15378@mdounin.ru> <20130318153807.GA16652@localhost> <20130318160054.GF15378@mdounin.ru>

On Mon, Mar 18, 2013 at 08:00:55PM +0400, Maxim Dounin wrote:
> Hello!
> 
> >   А http-redirect может только модуль фазы NGX_HTTP_CONTENT_PHASE слать или 
> > с
> > фазы NGX_HTTP_ACCESS_PHASE тоже можно слать перенаправления?
> 
> Можно из любой фазы (но может требовать дополнительных 
> приседаний).

  Хм, думал есть какой-либо "правильный" способ, так сказать.

> >   И ещё вопрос. Здесь - http://www.evanmiller.org/nginx-modules-guide.html -
> > написано, что хэндлер контента может быть только один и вешается так:
> > 
> >   clcf = ngx_http_conf_get_module_loc_conf(cf, ngx_http_core_module);
> >   clcf->handler = ngx_http_circle_gif_handler;
> 
> Так вешаются content-обработчики, вызываемые для данного 
> location'а.  Такие обработчики делать - проще всего, и в 
> большинстве случаев именно они и нужны.  Опять же, такие 
> обработчики - никак не влияют на обработку запросов в других 
> location'ах.  Именно так работает proxy_pass (+ memcached, 
> fastcgi, uwsgi, scgi), empty_gif, stub_status, perl и т.п.
> 
> Но это не всё, что бывает в content-фазе.  Если clcf->handler не 
> стоит, или отказался от обработки запроса, то последовательно 
> вызываются модули content-фазы, такие как random_index, index, 
> autoindex, static.
> 
> >   Про хэндлеры фаз обработки запроса там, кстати, я ничего не нашёл.
> >   Вопрос в чём. Можно ли повесить несколько handler'ов содержимого через
> > фазу обработки запроса NGX_HTTP_CONTENT_PHASE? И можно ли это сделать так,
> > что бы он вызывался гарантировано до proxy_pass?
> >   Тогда, я могу там делать http-redirect на основе переменных, допустим.
> 
> Нет, так работать не будет.  Если стоит clcf->handler - то на 
> обротчики content-фазы смотреть никто не будет.  Если вам нужно 
> своим модулем проверить результат работы модуля access-фазы, то 
> это надо делать в access-фазе же (и при этом убедившись, что 
> satisfy стоит в all).

  Большое спасибо за разъяснения. Думаю городить ещё модуль нет смысла в
моём случае. Надо всё в одном модуле делать.

> Загляните в ngx_http_core_module.c, там всё более или менее 
> понятно.

  Спасибо за указание направления. Попытаюсь там что-нибудь накопать.

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.