У мене є така настройка сервера за замовчуванням у nginx:
# Default HTTP Server
server {
listen 80 default;
server_name _;
access_log /var/log/nginx/$server_name.access.log;
error_log /var/log/nginx/$server_name.error.log;
server_name_in_redirect off;
location / {
root domain.com/public;
index index.php;
try_files $uri index.php;
}
location ~ \.(html|jpg|jpeg|gif|png|ico|css2|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js)$ {
root /path/to/domain.com/public;
expires 30d;
break;
}
charset utf-8;
location ~ \.php$ {
include /opt/nginx/conf/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /path/to/domain.com/public/index.php;
}
location ~ \.(js|ico|gif|jpg|png|css)$ {
root /path/to/domain.com/public;
}
}
У мене є кілька доменів, які вказують на сервер. Я тут намагаюся досягти - це мати журнали у форматі або /var/log/nginx/mydomain.com/access.logабо/var/log/nginx/mydomain.com.access.log
Натомість я отримую /var/log/nginx/$server_name.access.log.
Якщо я спробую метод каталогів, під час перевірки конфігурації з’явиться помилка nginx: [emerg] open() "/var/log/nginx/$server_name/access.log" failed (2: No such file or directory)
Чому nginx не передає змінну імені файлу?
Використовуючи nginx / 1.0.0
Яку версію ти працюєш? Змінні в назви файлів журналу дозволені лише з 0.7.4. wiki.nginx.org/HttpLogModule
—
Френк Фермер
і навіть тоді, лише в access_log. Змінні досі не дозволені в error_log. $ server_name також, мабуть, не є змінною, яку ви дійсно шукаєте, оскільки вона завжди буде розширюватися до '_' у вашому випадку. Напевно, ви справді шукали $ хоста.
—
колб’як
Я використовую 1.0.0, і дякую за вказівник на $ host - це те, що я намагався досягти. Крім того, не знали, що помилка сервера існувала - розум роздутий, спасибі за міграцію.
—
Mahdi.Montgomery
чи це зараз неможливо в останніх версіях?
—
snh_nl