Strange try_files behaviour
Maxim Dounin
mdounin at mdounin.ru
Sun Jul 13 21:13:50 UTC 2014
Hello!
On Sat, Jul 12, 2014 at 06:23:41AM -0400, itpp2012 wrote:
> Hmm, more debugging, this config returns a 404 from the backend (which it
> shouldn't):
>
> try_files $uri $uri/ =404;
> set $maintmode S;
> if ($remote_addr ~ "^(192.168.*.*)$") { set $maintmode L; }
> if (-f $document_root/maintenance_mode.html) { set $maintmode
> "${maintmode}M"; }
> if ($maintmode = SM) { return 503; }
>
> This config returns a 404 from nginx, like it should:
>
> try_files $uri $uri/ =404;
> set $maintmode S;
> # if ($remote_addr ~ "^(192.168.*.*)$") { set $maintmode L; }
> if (-f $document_root/maintenance_mode.html) { set $maintmode
> "${maintmode}M"; }
> if ($maintmode = SM) { return 503; }
>
>
> So yes it is an IF issue but to my opinion this should not happen.
Please re-read the link provided by Valentin:
http://wiki.nginx.org/IfIsEvil
One of the examples there is exactly your case - if any of the if's
(without "return" inside it) in your configuration is matched, the
"try_files" won't work.
--
Maxim Dounin
http://nginx.org/
More information about the nginx
mailing list