Реверс прокси с параметрами

Igor Sysoev is at rambler-co.ru
Wed Aug 12 12:43:04 MSD 2009


On Wed, Aug 12, 2009 at 10:07:17AM +0400, Александр Горбань wrote:

> Возникла необходимость сделать подобное проксирование и для POST запросов.
> Есть какой-нибудь способ выхватывать из пост запроса параметры ip и port?

Нет.

> 2009/8/4 Igor Sysoev <is at rambler-co.ru>
> 
> > On Tue, Aug 04, 2009 at 01:26:05PM +0400, Александр Горбань wrote:
> >
> > > ЗАДАЧА:
> > > Есть веб сервер и несколько backend серверов. Мне нужно настроить веб
> > > сервер таким образом, что бы в записимости от параметров в запросе он
> > > проксировал его на заданный backend сервер.
> > > Например: запрос http://myfront.com/index.html?ip=1.1.1.1&port=1111
> > > был проксирован к backend серверу 1.1.1.1 на порт 1111
> > > Я попытался сделать это при помощи следующей конфигурации:
> > > server {
> > >     listen 80;
> > >     server_name myfront.com;
> > >     location / {
> > >         if ($arg_ip = "") {
> > >             return 400;
> > >         }
> > >         if ($arg_port = "") {
> > >             return 400;
> > >         }
> > >         proxy_pass http://$arg_ip:$arg_port/;
> >
> > -         proxy_pass http://$arg_ip:$arg_port/;
> > +         proxy_pass http://$arg_ip:$arg_port$request_uri;
> >
> > или
> >
> > +         proxy_pass http://$arg_ip:$arg_port$uri;
> >
> > >         proxy_redirect default;
> > >     }
> > > }
> > >
> > > Но при такой конфигурации по запросу пользователя
> > > http://myfront.com/about.html?ip=1.1.1.1&port=1111 на сервер 1.1.1.1
> > > приходит запрос http://1.1.1.1/, сервер 1.1.1.1 редиректит на
> > > http://1.1.1.1/index.html, а браузер пользователя редиректится на
> > > http://1.1.1.1/index.html
> > > Мне нужно, что бы браузер пользователя если и редиректился то только
> > > на myfront.com с параметрами ip=1.1.1.1&port=1111, что бы nginx знал,
> > > куда проксировать этот запрос.
> > >
> > > Я знаю, что можно настроить группу серверов, но мне этот вариант не
> > > подходит, потому что мне нужна гарантия, что конкретный запрос
> > > пользователя будет проксирован на конкретный сервер даже если
> > > пользователь будет делать этот запрос с разных адресов. В случае с
> > > директивой upstream такой гарантии нет.
> > >
> > > Большое спасибо за попощь!
> > >
> > > --
> > > С уважением, Горбань Александр
> >
> > --
> > Игорь Сысоев
> > http://sysoev.ru
> >
> >
> 
> 
> -- 
> С уважением, Горбань Александр
> телефон: +7 (904) 506-51-11
> ---
> Best regards,
> Alexander Gorban

-- 
Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list