Возникла необходимость сделать подобное проксирование и для POST запросов.<br>Есть какой-нибудь способ выхватывать из пост запроса параметры ip и port?<br><br><div class="gmail_quote">2009/8/4 Igor Sysoev <span dir="ltr">&lt;<a href="mailto:is@rambler-co.ru">is@rambler-co.ru</a>&gt;</span><br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div class="im">On Tue, Aug 04, 2009 at 01:26:05PM +0400, Александр Горбань wrote:<br>
<br>
&gt; ЗАДАЧА:<br>
&gt; Есть веб сервер и несколько backend серверов. Мне нужно настроить веб<br>
&gt; сервер таким образом, что бы в записимости от параметров в запросе он<br>
&gt; проксировал его на заданный backend сервер.<br>
&gt; Например: запрос <a href="http://myfront.com/index.html?ip=1.1.1.1&amp;port=1111" target="_blank">http://myfront.com/index.html?ip=1.1.1.1&amp;port=1111</a><br>
&gt; был проксирован к backend серверу 1.1.1.1 на порт 1111<br>
&gt; Я попытался сделать это при помощи следующей конфигурации:<br>
&gt; server {<br>
&gt;     listen 80;<br>
&gt;     server_name <a href="http://myfront.com" target="_blank">myfront.com</a>;<br>
&gt;     location / {<br>
&gt;         if ($arg_ip = &quot;&quot;) {<br>
&gt;             return 400;<br>
&gt;         }<br>
&gt;         if ($arg_port = &quot;&quot;) {<br>
&gt;             return 400;<br>
&gt;         }<br>
&gt;         proxy_pass http://$arg_ip:$arg_port/;<br>
<br>
</div>-         proxy_pass http://$arg_ip:$arg_port/;<br>
+         proxy_pass http://$arg_ip:$arg_port$request_uri;<br>
<br>
или<br>
<br>
+         proxy_pass http://$arg_ip:$arg_port$uri;<br>
<div><div></div><div class="h5"><br>
&gt;         proxy_redirect default;<br>
&gt;     }<br>
&gt; }<br>
&gt;<br>
&gt; Но при такой конфигурации по запросу пользователя<br>
&gt; <a href="http://myfront.com/about.html?ip=1.1.1.1&amp;port=1111" target="_blank">http://myfront.com/about.html?ip=1.1.1.1&amp;port=1111</a> на сервер 1.1.1.1<br>
&gt; приходит запрос <a href="http://1.1.1.1/" target="_blank">http://1.1.1.1/</a>, сервер 1.1.1.1 редиректит на<br>
&gt; <a href="http://1.1.1.1/index.html" target="_blank">http://1.1.1.1/index.html</a>, а браузер пользователя редиректится на<br>
&gt; <a href="http://1.1.1.1/index.html" target="_blank">http://1.1.1.1/index.html</a><br>
&gt; Мне нужно, что бы браузер пользователя если и редиректился то только<br>
&gt; на <a href="http://myfront.com" target="_blank">myfront.com</a> с параметрами ip=1.1.1.1&amp;port=1111, что бы nginx знал,<br>
&gt; куда проксировать этот запрос.<br>
&gt;<br>
&gt; Я знаю, что можно настроить группу серверов, но мне этот вариант не<br>
&gt; подходит, потому что мне нужна гарантия, что конкретный запрос<br>
&gt; пользователя будет проксирован на конкретный сервер даже если<br>
&gt; пользователь будет делать этот запрос с разных адресов. В случае с<br>
&gt; директивой upstream такой гарантии нет.<br>
&gt;<br>
&gt; Большое спасибо за попощь!<br>
&gt;<br>
&gt; --<br>
&gt; С уважением, Горбань Александр<br>
<br>
</div></div><font color="#888888">--<br>
Игорь Сысоев<br>
<a href="http://sysoev.ru" target="_blank">http://sysoev.ru</a><br>
<br>
</font></blockquote></div><br><br clear="all"><br>-- <br>С уважением, Горбань Александр<br>телефон: +7 (904) 506-51-11<br>---<br>Best regards,<br>Alexander Gorban<br>