Re: порядок прохождения http-фаз сервера
Oleg
lego12239 at yandex.ru
Mon Mar 18 15:38:07 UTC 2013
On Mon, Mar 18, 2013 at 06:53:22PM +0400, Maxim Dounin wrote:
> Hello!
>
> > Например, надо сделать в случае неудачной аутентификации редирект на страницу
> > с логином/паролем:
> >
> > location = /login {
> > # тут страница для аутентификации и редиректом на /user/$USERNAME в случае
> > # удачи.
> > fastcgi_pass 127.0.0.1:9000;
> > include fastcgi_params;
> > fastcgi_param SERVER_NAME $http_host;
> > }
> > location /user/user1 {
> > # аутентификация по cookie, полученном в локации /login
> > auth_cookie "CGISESSID";
> > auth_cookie_path "/tmp";
> >
> > # cookie кончился
> > if ( $auth_cookie_fail ) {
> > return 302 http://$host/login;
> > }
> >
> > proxy_pass http://127.0.0.2:2001/;
> > include proxy_params;
> > }
> >
> > $auth_cookie_fail устанавливается модулем auth_cookie. Я так понимаю, так
> > не получится?
>
> Совершенно верно.
А 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;
Про хэндлеры фаз обработки запроса там, кстати, я ничего не нашёл.
Вопрос в чём. Можно ли повесить несколько handler'ов содержимого через
фазу обработки запроса NGX_HTTP_CONTENT_PHASE? И можно ли это сделать так,
что бы он вызывался гарантировано до proxy_pass?
Тогда, я могу там делать http-redirect на основе переменных, допустим.
Подробная информация о списке рассылки nginx-ru