Re: ngx_http_map_module и include

Alexey V. Karagodov kav at karagodov.name
Wed Jul 8 15:46:46 MSD 2009


On 08.07.2009, at 15:15, Руслан Шарипов wrote:

> День добрый.
>
> Имеем:
>
> в главном конфиге nginx'а есть такие строчки:
>
> ...
> http
> {
>    ...
>    map                                 $host $hid
>    {
>        default                         0;
>        hostnames;
>        include                         conf/users/*.hid;
workaround: скриптом сгенерить конфиг или часть конфига, сгенерить  
conf/users/everything.hid и сделать:
-       include                         conf/users/*.hid;
+       include                         conf/users/everything.hid;

>     }
>
>    ...
>
>   include                             conf/users/*.conf;
> }
> ...
>
>
> в директории conf/users/ содержаться следующие файлы:
>
> [root at alpha /usr/local/etc/nginx]# ls -la conf/users/
> total 286
> drwxr-xr-x  2 root  wheel  3072 Jul  8 16:58 .
> drwxr-xr-x  6 root  wheel   512 Jul  8 16:58 ..
> -rw-r--r--  1 root  wheel   501 Jun 20  2008 i5001.conf
> -rw-r--r--  1 root  wheel    48 Jul  8 16:58 i5001.hid
> -rw-r--r--  1 root  wheel   671 Jul  7 14:27 i5002.conf
> -rw-r--r--  1 root  wheel    56 Jul  8 16:58 i5002.hid
> -rw-r--r--  1 root  wheel  1028 Jun 28 18:59 i5003.conf
> -rw-r--r--  1 root  wheel    96 Jul  8 16:58 i5003.hid
> -rw-r--r--  1 root  wheel   389 May 20  2008 i5004.conf
> ...
>
> в каждая пара файлов (например, i5001.conf и i5001.hid) обслуживает
> какой-либо сайт
> в файле i5001.conf содержатся описание конфигурации непосредственно
> сайта (блок server { })
> в файле i5001.hid соответствие доменных имен сайта некоторому
> идентификатору, пример файла:
>
> my.domain.com 5001;
> my2.domain.com 5001;
> my.newdomain.com 5001;
>
> Проблема:
>
> команда include conf/users/*.conf; отрабатывает отлично, т.е. nginx
> успешно загружает информацию обо всех сайтах.
> а вот с командой include conf/users/*.hid; все намного плачевнее,
> include не хочет подцеплять в блок map { } содержимое файлов
> подпадающих под указанную маску, configtest выдает следующее
> сообщение:
>
> [root at alpha /usr/local/etc/nginx]# /usr/local/etc/rc.d/nginx  
> configtest
> Performing sanity check on nginx configuration:
> [emerg]: open() "/usr/local/etc/nginx/conf/users/*.hid" failed (2: No
> such file or directory) in /usr/local/etc/nginx/nginx.conf:23
> configuration file /usr/local/etc/nginx/nginx.conf test failed
>
> Вопрос:
>
> как научить include в блоке map {} подключать файлы по маске  
> (например, *.hid);
>
> Данные о системе:
>
> ОС: FreeBSD 6.3-RELEASE i386
> nginx: nginx/0.7.61 (собран из портов)
> pcre: 7.4
>
> -- 
> С уважением, Шарипов Руслан.
> Руководитель отдела разработки и сопровождения программного
> обеспечения ОАО "Уфанет".
>
> Контактная информация:
> jid: serafim at jabber.ufanet.ru
> skype: ufaweb
> phone: +7(917)4775460
> vkontakte: http://vkontakte.ru/id349735
> myspace: http://www.myspace.com/ufaweb
> facebook: http://facebook.com/sharipov






More information about the nginx-ru mailing list