Re: порядок прохождения http-фаз сервера

Oleg lego12239 at yandex.ru
Mon Mar 18 18:49:59 UTC 2013


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

  Так. Попробовал по-быстрому сделать перенаправление. Никаких приседаний не
заметил, по крайней мере для фазы NGX_HTTP_ACCESS_PHASE. Может, чего-то не
учёл, конечно, но сделал в лоб:

    h = r->headers_out.location;
    if ( h == NULL ) {
      h = ngx_list_push(&r->headers_out.headers);
      if ( h == NULL )
        return NGX_ERROR;

      h->key.data = "Location";
      h->key.len = sizeof("Location") - 1;

      r->headers_out.location = h;
    }
    h->value.data = "http://ya.ru";
    h->value.len = sizeof("http://ya.ru") - 1;
    h->hash = 1;

    r->headers_out.status = NGX_HTTP_TEMPORARY_REDIRECT;
    ngx_http_send_header(r);

    return NGX_OK;

  Работает нормально.



Подробная информация о списке рассылки nginx-ru