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

Александр Горбань alex.gorban at gmail.com
Wed Aug 12 10:07:17 MSD 2009


Возникла необходимость сделать подобное проксирование и для 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20090812/5bbdadf6/attachment.html>


More information about the nginx-ru mailing list