Setting an error_page for upstream timeouts
Maxim Dounin
mdounin at mdounin.ru
Fri Dec 23 12:17:02 UTC 2011
Hello!
On Thu, Dec 22, 2011 at 07:59:20PM -0800, Dustin Moskovitz wrote:
> I have a seemingly simple question about configuration, but have been
> unable to find the answer through searching so far. I just want to override
> the default 504 page when the upstream server times out, which I would have
> thought would be handled by the error_page setting. Can anyone help?
>
> My config looks like this (the variables are replaced before nginx is
> started):
> upstream jsweb {
> server 127.0.0.1:8091;
> }
>
> server {
> listen $PORT$;
> server_name localhost;
> root $CONTENT_ROOT$;
>
> location / {
> add_header X-Server-Name "$HOST_NAME$";
> proxy_set_header X-Real-IP $remote_addr;
> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
> proxy_set_header Host $http_host;
> proxy_pass http://jsweb;
> error_page 502 503 504 $OUTAGE_PAGE$;
> }
> }
>
> And the errors in the logs look like:
>
> 2011/12/23 03:50:35 [error] 13736#0: *9 upstream timed out (110: Connection
> timed out) while reading response header from upstream, client:
> 10.214.178.111, server: localhost, request: "GET /-/forgot_password
> HTTP/1.1", upstream: "http://127.0.0.1:8091/", host: "staging.myapp.com"
And what's wrong? Everything looks fine from here: nginx will log
error and return error to client as specified in "$OUTAGE_PAGE$"
(I assume it's something obfuscated or expanded by your
configuration system).
Maxim Dounin
More information about the nginx
mailing list