Apr 24, 2012

nginx error_page for 502 Bad Gateway errors


Here is my server configuration:

    server {
            server_name dev.host.com;            location / {
                    include /etc/nginx/proxy.conf;
                    proxy_redirect default;                    error_page 502 =200 @maintenance;
            }            location ^~ /(img|js|css)/ {
                    root /path/to/application/assets;
                    expires max;
                    break;                    error_page 404 =302 /;
            }            location @maintenance { 
                     root /path/to/static/offline/files;
                     try_files $uri $uri/ /index.html =503;

When the upstream app is not online, I am getting the default nginx 502 page for the root path (that is: GET /). Any idea why this is happening? I’d like the root path to respond with the maintenance page just like any other request path.

Asked by mikeycgto


The devils in the details; my @maintenance named location was not setup correctly. Specifically, the send argument ($uri/) to try_files was causing the problem. Here is the correct named location:

location @maintenance { 
    root /path/to/static/offline/files;
    try_files $uri /index.html =503;
Answered by mikeycgto

No related posts.

Leave a comment