[Solved] Re: Returning a 503 status code using try files with a maintenance page activated
Zev Blut
zblut at cerego.com
Mon May 14 09:04:14 UTC 2012
Hello,
On 05/10/2012 11:52 AM, Zev Blut wrote:
> 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.
I have found a work around to my question.
I push the "if return 503" check into the location that defines
the proxy pass.
My working example becomes:
<example>
location / {
try_files $uri $uri/index.html $uri.html @mongrel;
}
location @mongrel {
if (-f /system/maintenance.html) {
return 503;
break;
}
proxy_pass http://mongrel;
}
error_page 503 /system/maintenance.html;
location = /system/maintenance.html {
root /app;
}
</example>
In the end, I do not use the maintenance path in the try_files.
This may not look like much of a change, but my refactoring helps
reduce the checks when I have multiple location directives that
all end with pass to @mongrel.
Zev
More information about the nginx
mailing list