можно host-ами <br><br><div><span class="gmail_quote">2007/11/27, Ðнатолий Шарифулин <<a href="mailto:subscribe@tochkak.ru">subscribe@tochkak.ru</a>>:</span><blockquote class="gmail_quote" style="margin:0;margin-left:0.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div lang="RU" link="blue" vlink="purple">
<div>
<p>ПриветÑтвую!</p>
<p> </p>
<p><span lang="EN-US">Proxy</span>_<span lang="EN-US">pass</span><span lang="EN-US"> </span>не понимает переменные, ни в качеÑтве вÑего <span lang="EN-US">URI</span>, ни в качеÑтве порта.</p>
<p> </p>
<p>Пример<span lang="EN-US">:</span></p>
<p><span lang="EN-US">map $http_host $my_port {</span></p>
<p><span lang="EN-US"> <a href="http://game.rnd.example.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">game.rnd.example.com</a>
8001;</span></p>
<p><span lang="EN-US"> <a href="http://admin.rnd.example.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">admin.rnd.example.com</a>
8081;</span></p>
<p><span lang="EN-US"> </span></p>
<p><span lang="EN-US"> <a href="http://game.msk.example.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">game.msk.example.com</a>
8004;</span></p>
<p><span lang="EN-US"> <a href="http://admin.msk.example.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">admin.msk.example.com</a>
8084;</span></p>
<p><span lang="EN-US"> </span></p>
<p><span lang="EN-US"> <a href="http://game.test.example.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">game.test.example.com</a>
8003;</span></p>
<p><span lang="EN-US"> <a href="http://admin.test.example.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">admin.test.example.com</a>
8083;</span></p>
<p><span lang="EN-US"> </span></p>
<p><span lang="EN-US"> <a href="http://game.new.example.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">game.new.example.com</a>
8002;</span></p>
<p><span lang="EN-US"> <a href="http://admin.new.example.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">admin.new.example.com</a>
8082;</span></p>
<p><span lang="EN-US">}</span></p>
<p><span lang="EN-US"> </span></p>
<p><span lang="EN-US">location / {</span></p>
<p><span lang="EN-US"> if ($my_port) {</span></p>
<p><span lang="EN-US"> proxy_pass <a href="http://127.0.0.1:$my_port" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://127.0.0.1:$my_port</a>;</span></p>
<p><span lang="EN-US"> </span>break;</p>
<p> }</p>
<p>}</p>
<p> </p>
<p>Что не так?</p>
<p> </p>
<p> </p>
<p>Решил обойти проблему.</p>
<p><span lang="EN-US">location / {</span></p>
<p><span lang="EN-US"> if ($http_host ~
rnd\.example\.com$) {</span></p>
<p><span lang="EN-US"> include
/path/rnd.example.com/nginx.conf;</span></p>
<p><span lang="EN-US"> </span>}</p>
<p> ...</p>
<p>}</p>
<p>Так не работает, пишет, что <span lang="EN-US">include</span><span lang="EN-US"> </span>не определен в <span lang="EN-US">if</span>. </p>
<p> </p>
<p>Попробовал через именованный локации, только не знаю как их
вызвать.</p>
<p>Вызвал через <span lang="EN-US">error</span>_<span lang="EN-US">page</span>,
но только <span lang="EN-US">GET</span><span lang="EN-US"> </span>запроÑÑ‹ попадают
через <span lang="EN-US">error</span>_<span lang="EN-US">page</span><span lang="EN-US"> </span>на именованную локацию, оÑтальные – ошибка 405.</p>
<p><span lang="EN-US">location / {</span></p>
<p><span lang="EN-US"> if ($http_host ~
rnd\.example\.com$) {</span></p>
<p><span lang="EN-US"> error_page
404 = @rnd;</span></p>
<p><span lang="EN-US"> }</span></p>
<p><span lang="EN-US"> ...</span></p>
<p><span lang="EN-US">}</span></p>
<p><span lang="EN-US">location @rnd {</span></p>
<p><span lang="EN-US"> include
/path/rnd.example.com/nginx.conf;</span></p>
<p>}</p>
<p>…</p>
<p> </p>
<p>Ð’ итоге напиÑал в лоб, но решение мне не нравитÑÑ:</p>
<p><span lang="EN-US"> </span></p>
<p><span lang="EN-US">if ($http_host ~ ^game\.rnd\.example\.com$)
{</span></p>
<p><span lang="EN-US"> </span>proxy_pass
<a href="http://127.0.0.1:8001" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://127.0.0.1:8001</a>;</p>
<p> <span lang="EN-US">break;</span></p>
<p><span lang="EN-US">}</span></p>
<p><span lang="EN-US">if ($http_host ~
^admin\.rnd\.example\.com$) {</span></p>
<p><span lang="EN-US"> proxy_pass
<a href="http://127.0.0.1:8081" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://127.0.0.1:8081</a>;</span></p>
<p><span lang="EN-US"> break;</span></p>
<p><span lang="EN-US">}</span></p>
<p><span lang="EN-US"> </span></p>
<p>…</p>
<p><span lang="EN-US"> </span></p>
<p><span lang="EN-US">if ($http_host ~
^game\.test\.example\.com$) {</span></p>
<p><span lang="EN-US"> proxy_pass
<a href="http://127.0.0.1:8003" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://127.0.0.1:8003</a>;</span></p>
<p><span lang="EN-US"> break;</span></p>
<p><span lang="EN-US">}</span></p>
<p><span lang="EN-US">if ($http_host ~ ^admin\.test\.example\.com$)
{</span></p>
<p><span lang="EN-US"> proxy_pass
<a href="http://127.0.0.1:8083" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://127.0.0.1:8083</a>;</span></p>
<p><span lang="EN-US"> break;</span></p>
<p><span lang="EN-US">}</span></p>
<p><span lang="EN-US"> </span></p>
<p>ÐŸÐ»ÑŽÑ <span lang="EN-US">auth</span>_<span lang="EN-US">basic</span><span lang="EN-US"> </span>иÑпользовать в <span lang="EN-US">if</span> нельзÑ, Ñ‚.е. не
получитÑÑ Ñделать Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ Ñубдомена Ñвою авторизацию, только общую.</p>
<p> </p>
<p> </p>
<p>Что поÑоветуете?</p>
<p> </p>
<p> </p>
</div>
</div>
</blockquote></div><br>