ПРОЕКТЫ 


  АРХИВ 


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: proxy_pass в if



On Sat, Jul 21, 2007 at 10:31:08PM +0400, Andrey G. Sergeev (AKA Andris) wrote:

> В секции server имеется такой кусок:
> 
> location        / {
>         if ( $server_port = 8010 ) {
>                 proxy_pass      http://backend1/;
>         }
>         if ( $server_port = 8020 ) {
>                 proxy_pass      http://backend2/;
>         }
> }
> 
> Всего таких проверок 5. При проверке конфига nginx не принимает его, т.к.
> 2007/07/21 22:25:50 [emerg] 1029#0: "proxy_pass" may not have URI part 
> in location given by regular expression, or inside the "if" statement, 
> or inside the "limit_except" block in /usr/local/etc/nginx/nginx.conf:73
>
> При этом на 
> http://sysoev.ru/nginx/docs/http/ngx_http_proxy_module.html#proxy_pass 
> сказано, что контекстом для proxy_pass может быть как раз "if в location".
> 
> В чём я неправ?

"proxy_pass" may not have URI part:

-                proxy_pass      http://backend1;
+                proxy_pass      http://backend1/;


А вообще, такие вещи нужно разруливать server'ами, а не if'ами:

server {
     listen  8010;
     location / {
         proxy_pass  http://backend1;
     }
}

server {
     listen  8020;
     location / {
         proxy_pass  http://backend2;
     }
}


-- 
Игорь Сысоев
http://sysoev.ru



 




Copyright © Lexa Software, 1996-2009.