404 then upstream timeout

Eden Li eden at mojiti.com
Fri Mar 7 05:53:55 MSK 2008


Hi all,

I'm running into a strange issue with nginx upstreaming to a varnish  
cache.

When I POST to a specific URL with invalid parameters, I want the call  
to return a 404.

However, nginx returns 504 after a 60ish second timeout.

I notice in my logs that $upstream_status is returning 2 values "404 :  
504".
$upstream_response_time is "0.026 : 60.000"

If I hit varnish directly, the call returns immediately with the  
proper 404 response.

Tracing varnish logs during this call shows that only a single request  
is made against, even though $upstream_status seems to be returning 2  
values.

Here's the basic config (salient bits only)

upstream varnish { http://127.0.0.1:2222; }

server {
   proxy_redirect false;
   proxy_max_temp_file_size 0;
   proxy_next_upstream off;
   proxy_read_timeout 60;
   proxy_intercept_errors on;

   error_page 404 /404.html;
   error_page 500 /500.html;

   location / {
     proxy_pass http://varnish;
   }
}

This is nginx/0.5.32.  Does anyone know why nginx seems to be making 2  
calls, when it should only be returning 404 immediately?

Thanks,
eden





More information about the nginx mailing list