ПРОЕКТЫ 


  АРХИВ 


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: Много виртуальных серверов



В 0.4.х можно так:

map $host $root {
    hostnames;

    .domain1.tld /www/domain1;
    .domain2.tld /www/domain2;
    ...
}

server {
   listen       80 default;
   server_name  main.name  *;

   location ~* \.(ico|jpg|jpeg|gif|png|mp3|avi|mpg|mpeg|txt|html?)$ {
        root   $root/html;
   }

   location / {
        proxy_pass http://127.0.0.1:80;
   }
}

server {
   listen       80;
   server_name  special.site;
   ...


Можно как-нибудь сделать чтобы map мог говорить порты для proxy_pass?

Попробовал так, но ругается:

---------------------------
   map $host $port {
     hostnames;

     default   8000;
     dom.ru  8000;

     sd.d1.ru 8010;
     ssd.sd.d1.ru 8011;

     s2.ru 8020;
     *.s2.ru 8021;
   }

....

       location / {
         proxy_pass http://127.0.0.1:$port/;
         proxy_set_header  Host  $host;
       }
---------------------------

ругается так: invalid port in upstream "127.0.0.1:$port/"

Нужно именно по портам разбрасывать.


 




Copyright © Lexa Software, 1996-2009.