ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: поведение try_files



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@xxxxxxxxxxxxx> 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



 




Copyright © Lexa Software, 1996-2009.