ngx_http_map_module и include

Руслан Шарипов ufaweb at gmail.com
Wed Jul 8 15:15:13 MSD 2009


День добрый.

Имеем:

в главном конфиге nginx'а есть такие строчки:

...
http
{
    ...
    map                                 $host $hid
    {
        default                         0;
        hostnames;
        include                         conf/users/*.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