проксирование в зависимости от URL
AleXXX V. NovikoFF
alexxx at alexxx.ru
Tue Feb 21 14:47:06 MSK 2006
Здравствуйте!
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;
}
>
--
AleXXX V. NovikoFF <alexxx at alexxx.ru>
More information about the nginx-ru
mailing list