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