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

Александр Горбань alex.gorban at gmail.com
Tue Aug 4 17:25:48 MSD 2009


Это то, что нужно! Все заработало. Большое спасибо!

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


More information about the nginx-ru mailing list