Re: Непонятное в proxy pass

Maxim Dounin mdounin at mdounin.ru
Sat Feb 23 18:05:52 UTC 2013


Hello!

On Sat, Feb 23, 2013 at 12:45:22PM -0500, bodomic wrote:

> Приветствую,
> 
> Столкнулся со странным и, вроде бы, не описанным поведением в proxy_pass.
> Мне нужно пропустить через image_filter картинки из mogile, сам этот
> функционал прекрасно работает. Но когда мне нужно ввести вариации - а именно
> есть две разных локации, из которых надо брать такие картинки, в зависимости
> от uri - появляется странное.
> 
> Итак, локация, которая работает:
>         location /resize/ {
>                 expires max;
>                 image_filter_buffer 15M;
>                 image_filter resize $arg_width $arg_height;
>                 proxy_pass
> http://unix:/var/run/mogile_nginx_socket:/mogstore_photo/;
>        }
> Локация, которая не работает (ввожу переменную $mogpart, для наглядности
> прямо в локации):
>         location /resize/ {
>                 set $mogpart photo;
>                 expires max;
>                 image_filter_buffer 15M;
>                 image_filter resize $arg_width $arg_height;
>                 proxy_pass
> http://unix:/var/run/mogile_nginx_socket:/mogstore_$mogpart/;
>        }
> Отличия от первого варианта: "set $mogpart photo;" и эта же переменная в
> proxy_pass.
> Вместо "часть нормализованного URI запроса, соответствующая location,
> заменяется на URI, указанный в директиве", весь URI удаляется и запрос идёт
> на /mogstore_photo/. Без остального URI. Это видно в логе - там GET
> /mogstore_photo/ 404.
> 
> Подскажите, пожалуйста, это я чего-то не дочитал в документации, или это не
> описанное поведение?
> Ну и - что делать? :)

Использование переменных proxy_pass - включает отдельный режим 
работы.  При использовании в proxy_pass переменных - URI задаётся 
полностью, http://nginx.org/r/proxy_pass/ru:

"Имя сервера, его порт и передаваемый URI можно также полностью 
задать с помощью переменных"

Решение - либо не использовать переменные, либо задать URI 
полностью.

-- 
Maxim Dounin
http://nginx.com/support.html



Подробная информация о списке рассылки nginx-ru