proxy_set_header Host

Pavel V. pavel2000 на ngs.ru
Вт Ноя 8 15:00:08 UTC 2011


Здравствуйте.

Вы писали 8 ноября 2011 г., 19:53:57:

> Hello!

> On Tue, Nov 08, 2011 at 07:45:00AM -0500, tazik wrote:

>> Добрый день!
>> 
>> Осваиваю переход на nginx и столкнулся с
>> непрогуглевыемым (для меня) случаем:
>> 
>> Как выставить 
>> proxy_set_header Host backend?.my.lan;
>> что бы он автоматически подставлялся
>> для каждого  backend свой?
>> 
>> upstream back {
>> server backend1.my.lan;
>> server backend2.my.lan; 
>> }
>> server{
>> servername frontend.my.lan;
>> proxy_set_header Host backend1.my.lan;
>> proxy_pass http://back;
>> }
>> 
>> Существует возможность такая вообще? 


Наверное можно пропустить трафик к каждому из  бэкендов еще раз, через этот же Nginx, через server
{} на отдельных портах, описывая в них всё что нужно (Host, хосты/проты и т д). (server.example.com читать как 127.0.0.1)

upstream  backends  {
    server   server.example.com:6000;
    server   server.example.com:6001;
    server   server.example.com:6002;

    ...
}

#Frontend description
server{
  servername frontend.my.lan;
  proxy_pass http://backends;  ##Заворачиваем запрос на этот же Nginx еще раз, на "прокси" бэкэндов
  ...
}

#Proxy-servers for backends
server {
       listen server.example.com:6000;

       proxy_set_header Host backend1.my.lan;
       proxy_pass http://backend1.my.lan;
       proxy_buffering off;  # ???
       ...
}
server {
       listen server.example.com:6001;

       proxy_set_header Host backend2.my.lan;
       proxy_pass http://backend2.my.lan;
       proxy_buffering off;  # ???
       ...
}
server {
       listen server.example.com:6002;

       proxy_set_header Host backend3.my.lan;
       proxy_pass http://backend3.my.lan;
       proxy_buffering off;  # ???
       ...
}


-- 
С уважением,
 Pavel                          mailto:pavel2000 at ngs.ru



Подробная информация о списке рассылки nginx-ru