поведение try_files
Maxim Dounin
mdounin at mdounin.ru
Fri Aug 7 01:30:06 MSD 2009
Hello!
On Wed, Aug 05, 2009 at 02:19:18PM +0400, Kirill A. Korinskiy wrote:
> At Wed, 5 Aug 2009 14:11:25 +0400,
> Igor Sysoev <is at rambler-co.ru> wrote:
>
> > > ну а как же вариант с
> > >
> > > if (...) {
> > > set ... ...;
> > > }
> > >
> > > он же тоже крайне ожидаем.
> >
> > А в этом варианте есть подводные грабли, из-за которых всё вместе
> > может работать не так, как ожидается.
> >
>
> например?
На уровне server{} всё будет работать. А на уровне location любой
if без выхода в return/rewrite ... last - это грабли.
В примерах ниже можешь заменить "# nothing" на set - результат не
изменится:
# request will be sent to backend without uri changed
# to '/' due to if
location /proxy-pass-uri {
proxy_pass http://127.0.0.1:8080/;
set $true 1;
if ($true) {
# nothing
}
}
# try_files wont work due to if
location /if-try-files {
try_files /file @fallback;
set $true 1;
if ($true) {
# nothing
}
}
Maxim Dounin
More information about the nginx-ru
mailing list