ПРОЕКТЫ 


  АРХИВ 


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[2]: отменить брейком в if, описанный в location - p roxy_pass



Hello Alex,

да я практически пришел к томуже, но появилась другая проблема.

    set $root /var/www;

    location / {
      proxy_set_header  X-Real-IP  $remote_addr;

      if ($uri ~* \.php$) { 
        proxy_pass http://127.0.0.1:81;
        break;
      }
      
      if ($uri ~* ^/extpath/.*\.(jpg|gif|png|ico|js|css)$) { 
        set $root /home/inroot;
        rewrite ^/extpath(/.*\.(jpg|gif|png|ico|js|css))$ $1 break;
      }

      root $root;
    }

как вы видите, мне нужно переопределять - uri, отнимая от него часть
пути - в итоге получается два раза запуск одного и тогоже регуялрного
выражения, один раз в ифе другой в реврайте,  а это не очень изящно
- изменить $uri через set не выходит ругается про какойто дубликат вот
сижу думаю что делать.

и еще одна загвоздка, получается что нужно
дублировать каждый раз, /extpath и /extpath/ и так для каждой папки и отдельно 
в них
прописывать proxy_pass - что опять несколько громоздко, дублируются
данные. а иначе при открытия индекса, запрос идет на статику а не
через пыху.

Thursday, June 12, 2008, 3:34:40 PM, you wrote:

> test157@xxxxxxxx пишет:
>> Доброго времени суток!
>>
>> интересует такой вопрос. возможно ли сделать таким образом - что
>> вложенный в локейшен IF в случае совпадения будет заменять
>> proxy_pass объявленный в самом location - root'ом. вот пример что есть
>> сейчас:
>>
>>     location /papka/ {
>>   
> -       if ($uri ~ ^/papka/(.*\.js)$) {
> +       location ~ ^/papka/(.*\.js)$ {
>>  
>>         set $root /home/site/$1;
>>         set $t "TEST"; 
>>         root $root;
>>         break;
>>       } 
>>       proxy_set_header  X-Real-IP  $remote_addr;
>>       proxy_set_header  User-Agent $t;      
>>       proxy_pass http://127.0.0.1:80;
>>     }
>>
>> сам заход в ИФ для ЖС файлов работает, но почемуто РУТ не срабатывает,
>> а загружается proxy_pass. в целом это логично - с одной стороны, но с
>> другой разве BREAK в ифе не должен игнорировать все что ВНЕ ифа?
>>
>>
>>
>>   
> а если так?



-- 
Best regards,
 test157                            mailto:test157@xxxxxxxx




 




Copyright © Lexa Software, 1996-2009.