502 from upstream not handled by nginx error_page
Igor Sysoev
is at rambler-co.ru
Sat Jun 13 00:27:05 MSD 2009
On Fri, Jun 12, 2009 at 04:15:24PM -0400, JamesHarrison wrote:
> Hi,
>
> I'm having issues serving up a custom 502 using upstream; essentially nginx's 502 is always shown, despite having a custom 502 page set up with error_page.
>
> The configuration is here: http://pastie.org/private/8kjglkprvw8pfoeqkjcbug
>
> I've tried this with proxy_intercept_errors on, off, in the location and server blocks. Sadly, no dice.
>
> Error logs show nothing but 2009/06/12 20:04:43 14569#0: *2 no live upstreams while connecting to upstream
>
> The file it's trying to serve from for the 502 page is in the same folder with the same permissions as the static data nginx hosts anyway.
>
> Any ideas why this 502 is being ignored?
You should use location, but not path in error_page:
error_page 502 /opt/www/charactr/current/public/502.html;
error_page 502 /502.html;
loction = /503.html {
# the root is iherited from server level
#root /opt/www/charactr/current/public/;
}
Instead of
location / {
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_redirect off;
if (-f $request_filename/index.html) {
rewrite (.*) $1/index.html break;
}
if (-f $request_filename.html) {
rewrite (.*) $1.html break;
}
if (!-f $request_filename) {
proxy_pass http://charactrapp;
break;
}
}
it's better to use
location / {
try_files $uri/index.html $uri.html $uri @charactrapp;
}
location @charactrapp {
proxy_pass http://charactrapp;
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_redirect off;
}
Also, if you use 0.7.x, it's better to use
gzip_disable msie6;
instead of
gzip_disable "MSIE [1-6]\.";
--
Igor Sysoev
http://sysoev.ru/en/
More information about the nginx
mailing list