проксирование в зависимости от URL

Kovrigin Roman rkovrigin at rbc.ru
Tue Feb 21 15:03:07 MSK 2006



AleXXX V. NovikoFF пишет:
> Здравствуйте!
> Tue, 21 Feb 2006 14:15:56 +0300 Вы писали:
>
>   
>> Хочется сделать так:
>>               location ~ ^/photos/(a|b|c).* {
>>                     proxy_pass http://some.url/;
>>               }
>>
>>               location ~ ^/photos/(d|i|f).* {
>>                     proxy_pass http://other.url/;
>>               }
>>
>> Но выдает ошибку:
>> [root at at.freebsd:~]# nginx -t
>> 2006/02/21 13:01:28 [emerg] 736#0: "proxy_pass" may not have URI part in 
>> location given by regular expression in /usr/local/etc/nginx/nginx.conf:116
>>
>> Попытка сделать так:
>>               location /photos/ {
>>                    if ($request_uri ~ ^/photos/(a|b|c).*) {
>>                         proxy_pass http://some.url/;
>>                    }
>>                  
>>                   if ($request_uri ~ ^/photos/(d|i|f).*) {
>>                         proxy_pass http://other.url/;
>>                    }
>>               }
>>
>> Тоже провалилась:
>> [root at at.freebsd:~]# nginx -t
>> 2006/02/21 13:21:18 [emerg] 762#0: directive "proxy_pass" in 
>> /usr/local/etc/nginx/nginx.conf:109 is not allowed here
>>
>> Посоветуйте другой, наиболее оптимальный вариант реализации.
>>
>> -- 
>> С уважением, Роман Ковригин. Компания РосБизнесКонсалтинг. Отдел разработки.
>> http://rvk.phpclub.net
>>     
>
>
> у меня вот так работает:
>
>         location ^~ /files/ {
>             rewrite     ^/files/([^?&=]+\.(avi|mpeg|mpg|wmv))$  /down.php/files/$1  break;
>             rewrite     ^/files/  /index.php?page=files     break;
>             proxy_pass  http://127.0.0.1;
>
>             proxy_buffer_size          8k;
>             proxy_buffers              4 32k;
>             proxy_temp_file_write_size 256k;
>
>             proxy_set_header    Host             $host;
>             proxy_set_header    X-Real-IP        $remote_addr;
>             proxy_set_header    X-Forwarded-For  $proxy_add_x_forwarded_for;
>        }
>
>
>   
>
>   
Вы не поняли (или я?). У меня 2 файловых сервера. Мне нужно в 
зависимости от первой буквы логина пользователя (url вида 
/photos/<user_nick>/...) проксировать на один из серверов.

-- 
С уважением, Роман Ковригин. Компания РосБизнесКонсалтинг. Отдел разработки.
http://rvk.phpclub.net






More information about the nginx-ru mailing list