ПРОЕКТЫ 


  АРХИВ 


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 22:49:59 +0400
  • Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1363632805; bh=QKI3zg7GkNHvv5xlN1/mVg8mIj2xF5TfD6okGAI4W3s=; 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=MuJILNm1yn6T6ERTEm+td6x/D7+cMvfCswvef8hEXzs47zdwQ8lId99Hia73eFV9m 8DcOWc75yKVSjlVu6NQS3paLmMapTmssGx2cB390ysDq613V470zsju4yk2AQEEo5v iVY+rBapXLZK3Q2B2RHt+1vv27AxDkmdDS/fmaCE=
  • 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 тоже можно слать перенаправления?
> 
> Можно из любой фазы (но может требовать дополнительных 
> приседаний).

  Так. Попробовал по-быстрому сделать перенаправление. Никаких приседаний не
заметил, по крайней мере для фазы 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 mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.