Задать вопрос
danielnewman
@danielnewman
Front-end

Как резать логи nginx по файлам $host-access.log?

Есть проксирующий nginx перед виртуалками, хочу разрезать логи по доменам в одноименные $host-access.log файлы nginx'ом изначально, но что-то не выходит каменный цветок.

http {

upstream first-upstream {
    server 12.34.56.1:80;
}

#access_log  /var/log/nginx/$host-access.log;

server {
    listen        80 default_server;

    location / {
        proxy_pass  http://first-upstream;
        #access_log  /var/log/nginx/$host-access.log;
}



Не работает в любом месте включения строки access_log. В error.log сваливается:
...testing "/etc/nginx//html" existence failed (2: No such file or directory) while logging request...


У Сысоева этот вопрос каким-то странным образом решали, но у меня не root, а пучек upstream'ов разноайпишных.
  • Вопрос задан
  • 8682 просмотра
Подписаться 5 Оценить Комментировать
Решения вопроса 1
maxout
@maxout
Так опишите root же, написано вполне конкретно. Ясно, что он вам не нужен, но он нужен чтобы работала запись в лог =)
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
RicoX
@RicoX
Ушел на http://ru.stackoverflow.com/
server {
server_name localhost.com;
# Папка с контентом сайта (удобно, когда совпадает с именем домена)
root /var/www/localhost;
# Настройка логов, каждому виртуальному домену — свой лог
access_log /var/log/nginx/localhost.com-access.log;
error_log /var/log/nginx/localhost.com-error.log;
Я тут недавно заметку писал, посмотрите там это есть habrahabr.ru/post/164401/
Ответ написан
VBart
@VBart
Я просто процитирую документацию, которую всё равно никто не читает:
В пути файла можно использовать переменные (0.7.6+), но такие логи имеют некоторые ограничения:
[...]
  • при каждой записи в лог проверяется существование корневого каталога для запроса — если этот каталог не существует, то лог не создаётся. Поэтому root и access_log нужно описывать на одном уровне:

        server {
            root       /spool/vhost/data/$host;
            access_log /spool/vhost/logs/$host;
            ...
    

@ nginx.org/r/access_log/ru
Ответ написан
Не забывай что логи аксесс в nginx не нужны посколкьу они дублируют апач, а статика которая отработала валидно тебе и не нужна.
А вот нагрузку на сервер это добаит.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы