vhosting and map { }
Igor Sysoev
is at rambler-co.ru
Wed Jun 21 14:33:43 MSD 2006
On Wed, 21 Jun 2006, Dmitry Morozovsky wrote:
> On Wed, 21 Jun 2006, Igor Sysoev wrote:
>
> IS> > расскажите мне, как правильно строить виртуальных хостинг. в частности,
> IS> > как
> IS> > разумно использовать map - а то из информации на
> IS> > http://sysoev.ru/nginx/docs/http/ngx_http_map_module.html и разглядывания
> IS> > исходников я как-то не очень много выцепил.
> IS> >
> IS> > Например, хочется малой кровью сделать что-то типа
> IS> >
> IS> > map $http_host $root {
> IS> > hostnames;
> IS> >
> IS> > .domain1.tld /www/domain1;
> IS> > .domain2.tld /www/domain2;
> IS>
> IS> .domain1.tld www/domain1;
> IS> .domain2.tld www/domain2;
> IS>
> IS> default www/default;
> IS>
> IS> > ...
> IS> > }
> IS> >
> IS> > server {
> IS> > server_name $http_host;
> IS> > location ~* \.(ico|jpg|jpeg|gif|png|mp3|avi|mpg|mpeg|txt|html?)$ {
> IS> > root $root/html;
> IS>
> IS> root /$root/html;
> IS>
> IS> > }
> IS> > location / {
> IS> > proxy_pass http://127.0.0.1:80;
> IS>
> IS> proxy_set_header Host $host;
> IS>
> IS> > }
> IS> > }
> IS> >
>
> Хм. Что-то не работает. Пара виртуальных серверов, описанная мимо мапа,
> работает, а выроджденная ситуация типа
>
> server {
> include listen.conf;
> server_name $http_host;
Вот это вот
server_name $http_host;
я не заметил. Так нельзя.
> location = / {
> root /www/$sroot/html;
> index index.html index.shtml index.htm index.php;
> }
> location / {
> proxy_pass http://127.0.0.1;
> }
> }
>
> фигу - в качестве $document_root пишет root от первого из описанных серверов.
>
> Где я не вижу очевидного?
Вырожденный сервер нужно поместить в начало. Или во всех listen
для него указать default.
Игорь Сысоев
http://sysoev.ru
More information about the nginx-ru
mailing list