6

Here is my server configuration:

    server {
            listen 0.0.0.0;
            server_name dev.host.com;

            location / {
                    include /etc/nginx/proxy.conf;
                    proxy_pass http://127.0.0.1:5000;
                    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.

1

I did this for the whole vhost:

server {
         (...) 
         error_page 500 502 503 504 /5xx.html;
            location /5xx.html{
                    root /www/error_pages/;
         } 
}

This works perfectly for me.

  • This does catch the root path but it's like the try_files directive no longer works. Every request just results in the index.html page so requests for images and CSS fail. – mikeycgto Feb 24 '12 at 20:18
1

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;
}
1

Try setting proxy_intercept_errors on; https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_intercept_errors

  • No luck; tried the directive at the http, server and proxy location blocks – mikeycgto Feb 17 '12 at 17:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.