How to setup nginx to follow 302

Hello colleagues,
Last week I tried to configure nginx to follow 302 through upstream
of relay it to the client.
My config now is like the next one:

http {
proxy_cache_path /home/toli/nginx/run/cache keys_zone=zone_c1:256m
inactive=5d max_size=30g;

upstream up_cdn_cache_l2 {
    server weight=100;

server {


    location / {
        proxy_cache zone_c1;
        proxy_temp_path tmp;
        error_page 301 302 307 @redir;

    location @redir {
        set $foo $upstream_http_location;
        proxy_pass $foo;
        proxy_cache zone_c1;
        proxy_temp_path tmp ;


With this config ginx is trying to connect to the server taken from
location header. In wireshark I found new tcp connection to it but there
not http request over this connection and after some time 504: Gateway
Time-out is received.
So at the client site I receive “504: Gateway Time-out.”

Do you have any idea why nginx dont send http request to the second