Hello,
I am looking into streamlining our nginx maintenance page check logic.
In the nginx.org documentation there is an example usage for
try_files with a maintenance page.
http://nginx.org/en/docs/http/ngx_http_core_module.html#try_files
location / { try_files /system/maintenance.html $uri $uri/index.html $uri.html @mongrel; } location @mongrel {
proxy_pass http://mongrel;
}
This works, but when the maintenance page is activated it returns an
http status code of 200 instead of a 503.
What works for me on our site is something like this:
location / { if (-f /system/maintenance.html) { return 503; break; }try_files /system/maintenance.html
$uri $uri/index.html $uri.html
@mongrel;
}
location @mongrel {
proxy_pass http://mongrel;
}
error_page 503 /system/maintenance.html;
location = /system/maintenance.html {
root /app;
}
Is it possible to remove the “if return 503” logic and have the
try_files logic from the nginx documentation, but have nginx return a
503 when the maintenance page is found?
I have a number of location directives that all have this “if return
503” logic and would like to reduce this duplication.
Thanks,
Zev