ПРОЕКТЫ 


  АРХИВ 


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: Проксирование Cookie как в Apache ProxyPassReverseCookie


  • To: nginx-ru@xxxxxxxxx
  • Subject: Re: Проксирование Cookie как в Apache ProxyPassReverseCookie
  • From: "Begetan" <nginx-forum@xxxxxxxx>
  • Date: Sat, 15 Oct 2011 19:33:12 -0400
  • Dkim-signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mickey.jlkhosting.com; s=x; h=Date:Sender:From:References:In-Reply-To:Message-ID:Content-Transfer-Encoding:Content-Type:Subject:To; bh=RO0TmQ8IBGj3wxKNQ3dXuPImMRf/hMBFVFVkbfAyBjE=; b=tve7B/yXdkgYqzScIJAcG7H+CwE0Y5jCUUGlVocpiau4c+fsko6QvrN+JyBOs4uJ09TOFFbABfZV7wkiIJhLQD16gsh5dcN8B5DJqjwdMyMUaZHHt+3BwZnzBuMi9v1R;
  • In-reply-to: <20110418105010.GS56867@xxxxxxxxxx>
  • References: <20110418105010.GS56867@xxxxxxxxxx>

Приветствую!

Хочу вернутся к нерешенному вопросу
проксирования куки в ответах от
бекенда.

> >Заголовок ответа бекенда можно
> достать через переменную
> >$upstream_http_<header>, в данном случае -
> >$upstream_http_set_cookie.
>
> >Нюанс 1: сделать с ним можно что-то
> разве что через встроенный
> >перл (perl_set), ибо все if'и уже давно
> отработали.
>
> >Нюанс 2: если заголовков много - будет
> доступен только первый из
> >них.


Пробую применить perl


Есть такая конфигурация Nginx

http {
    perl_modules  /home/nginx/data/perl;
    perl_require cproxy.pm;
    perl_set  $some_new_cookie cproxy::handler ; 
...
server {   
    location /test {
        proxy_pass            http://backend;
        proxy_hide_header Set-Cookie;
        add_header Set-Cookie $some_new_cookie;
   }

Обработчик запускается:

package cproxy;
use nginx;

sub handler {
    my $r = shift;
    if (my $cookie = $r->variable($upstream_http_Set_Cookie)) {
        $cookie = "Cookie=NEW;" ;
    }
    else {
        return $cookie="Cookie=NULL;";
}

#    $r->header_out("Set-Cookie", $cookie);
#    $r->send_http_header;
#   return OK if $r->header_only;

    return $cookie;
}

Результат - выводится Cookie=NULL; хотя в
логах отображается нормальная
$upstream_http_Set_Cookie
Использование send_http_header делу не
помогает

Судя по всему вызов обработчика
переменной происходит слишком рано,
как быть?

Posted at Nginx Forum: 
http://forum.nginx.org/read.php?21,191814,216755#msg-216755

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


 




Copyright © Lexa Software, 1996-2009.