$upstream_http_ в post_action ?

Alexandre Snarskii snar на snar.spb.ru
Чт Сен 30 15:44:50 MSD 2010


Hi!

Я правильно понимаю, что из всего богатства переменных $upstream_* 
на уровне post_action можно получить доступ только к $upstream_addr, 
но не к $upstream_http_*, или это у меня руки кривые ? :) 

Конфиг прост: 

    upstream backend {
        server <......>:80;
    }
    server { 
        location /fcsetc/ {
                proxy_pass http://backend;
                proxy_set_header  Host <somewhat>;
                post_action @posta;
        }
        location @posta {
				internal ; # или не internal, рояли не играет
                #include fastcgi_params;
                #fastcgi_param UPSTREAM_COOKIE  $upstream_http_set_cookie;
                #fastcgi_param UPSTREAM2_COOKIE $upstream_http_xrccookie;
                #fastcgi_param UPSTREAM_ADDR $upstream_addr;
                #fastcgi_param UPSTREAM_SERVER $upstream_http_server;
                #fastcgi_pass localhost:8091;
                proxy_pass http://127.0.0.1:8092;
                proxy_set_header SCookie        $upstream_http_set_cookie;
                proxy_set_header S2Cookie       $upstream_http_xrccookie;
                proxy_set_header S3Addr         $upstream_addr;
                proxy_set_header S4Server       $upstream_http_server;
        }
	}

Что в случае с fastcgi_pass, что в случае с proxy_pass удается получить
$upstream_addr, но захватить куку (или любой другой заголовок), отданный
backend'ом не получается :(  

PS: можно, конечно, отказаться от post_action (ибо он трет собой 
$upstream_http) и тупо эту куку логировать отслеживая лог в near-realtime,
но это уж как-бы совсем через одно место... 

-- 
In theory, there is no difference between theory and practice. 
But, in practice, there is. 



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