Nginx fastcgi_intercept_errors

nginx/1.5.4 doesnt intercept fastcgi errors.
location / {

fastcgi_pass bg;
error_page 500 502 503 504 408 404 =204 /204.htm;
fastcgi_intercept_errors on;


}

However in root location access log we still see

91.192.148.232 - - [29/Nov/2013:13:39:20 +0400] “POST / HTTP/1.1” 504
182
“-” “-” “0.138”

And tcpdump capture shows that we still send 504:

Py…HTTP/1.1 504 Gateway Time-out
Server: nginx/1.5.4
Date: Fri, 29 Nov 2013 09:42:12 GMT
Content-Type: text/html
Content-Length: 182
Connection: keep-alive

504 Gateway Time-out

504 Gateway Time-out


nginx/1.5.4

What can be wrong here?

Thanks,
OK

Hello!

On Fri, Nov 29, 2013 at 03:36:18PM +0400, Oleg V. Khrustov wrote:

However in root location access log we still see

91.192.148.232 - - [29/Nov/2013:13:39:20 +0400] “POST / HTTP/1.1” 504 182
“-” “-” “0.138”

And tcpdump capture shows that we still send 504:

Py…HTTP/1.1 504 Gateway Time-out
Server: nginx/1.5.4

[…]

What can be wrong here?

Most likely reasons, in no particular order:

  • You’ve forgot to reload configuration, or the configuration was
    rejected due to errors and you’ve missed it.

  • The request is handled in other location and/or server, not
    the one you are looking at.


Maxim D.
http://nginx.org/en/donation.html

Hello!

On Fri, Nov 29, 2013 at 04:59:56PM +0400, Maxim D. wrote:

Py…HTTP/1.1 504 Gateway Time-out

  • The request is handled in other location and/or server, not
    the one you are looking at.

Another possible one, after looking into your next question:

  • You’ve forgot to add a location to handle /204.htm, and it’s
    passed to fastcgi backend again, and this again results in 504.
    As by default recursive_error_pages is disabled, the error is
    returned to a client.


Maxim D.
http://nginx.org/en/donation.html

Many thanks, works like a charm. The reason is Wrong location settings.

  1. /etc/init.d/nginx configtest
    nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    nginx: configuration file /etc/nginx/nginx.conf test is successful

It was definitely reloaded prior doing any tests.

  1. I have a separate access log file for this specific (root) location
    with custon log format where I captured 504 response. It is set only
    for
    root location where I captured unexpected response code.

Thanks,
OK