проблема с раскритием переменной

Ириша zayka at tubespace.ru
Thu Oct 22 12:52:30 MSD 2009


Предварительно и во время работы на всякий случай:
# chmod -R 777 /var/log/nginx/
# chown -R nginx:nginx /var/log/nginx/

в конфиге у меня имеются следующие строки для виртуального хоста:
server {
  server_name mysite;
  ...
  access_log /var/log/nginx/$server_name.access_log main;
  error_log /var/log/nginx/$server_name.error_log info;
  ...
}

однако во время работы сервера переменная $server_name раскрывается не везде:
# ls -lh /var/log/nginx/
итого 12K
-rwxrwxrwx 1 nginx nginx 1,2K Окт 22 12:21 mysite.access_log
-rwxrwxrwx 1 nginx nginx 1,2K Окт 22 12:21 error_log
-rwxrwxrwx 1 nginx nginx 800 Окт 22 12:21 $server_name.error_log

error_log для всех виртуальных хостов пишется
именно в /var/log/nginx/$server_name.error_log,
как будто он в кавычках!

пробовала написать вот так:
set $dpath "/var/www/$server_name/htdocs";
set $alogpath "/var/log/nginx/$server_name.access_log";
set $elogpath "/var/log/nginx/$server_name.error_log";
root $dpath;
access_log $alogpath main;
error_log $elogpath info;

опять же всё работает, однако в этом случае
лог вовсе не ведётся!

как заставить раскрыться $server_name ?


More information about the nginx-ru mailing list