Предварительно и во время работы на всякий случай:
# 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 ?