проксирование в зависимости от 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