ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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


  • To: nginx-ru@xxxxxxxxx
  • Subject: Re: Реверс прокси с параметра ми
  • From: Александр Горбань <alex.gorban@xxxxxxxxx>
  • Date: Wed, 12 Aug 2009 10:07:17 +0400
  • Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:content-type; bh=X16llzzhF8e65WbGFbx83CRQTKiS8LqbWgikcZjXadQ=; b=BIr7yYNxq05U6/LnjNFHYqKAj7kV2erGCuNhIgCjRo4lG/CM/sH39sNPlNWqRIXNeo 6XsTVHW7923HoUwRC9yDUFRoxhhkxbpOhqjJz+We9oyeJkTUa0AxVt4+Q/WSAuMfvIGd hgn5mpb8vA1aGpay2+DderCUmeJ6sbNhxOCBw=
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; b=xJRi2AwpgRyKK/PM208vTUUeHNtlIC2QyutdzZW3H6Acb9oex2NLXFybYrDYfI51wI SQShH1/A1IztXiR3slNVrdTFkMe1OrT6f+exuS3zhmjbUp1O2a1uSZ/5CJwWjUxLTFs8 B1u+B6lK93jAEmay2F7pb6CQNQSbV5ojeEpT4=
  • In-reply-to: <20090804111102.GE95723@xxxxxxxxxxxxx>
  • References: <7de6acc60908040226o5ddcf63ucd1cd113cb5429be@xxxxxxxxxxxxxx> <20090804111102.GE95723@xxxxxxxxxxxxx>

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

2009/8/4 Igor Sysoev <is@xxxxxxxxxxxxx>
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


 




Copyright © Lexa Software, 1996-2009.