Переменные nginx пусты при использовании пользовательского формата журнала - PullRequest
0 голосов
/ 04 июля 2018

Я пытаюсь реализовать собственный формат журнала для моих журналов доступа в nginx. Я указал свои log_format и access_log в nginx.conf:

http {

    log_format myformat '$remote_addr - $remote_user [$time_local] '
        '"$request" $status $body_bytes_sent '
        '"$http_referer" "$http_user_agent"';

    server {
        access_log /var/log/nginx/access.log myformat;
        ...
    }
}

Журналы действительно записываются в правильный файл, но все переменные кажутся пустыми. Файл выглядит так:

-  [] ""   "" ""
-  [] ""   "" ""
-  [] ""   "" ""

Если я не укажу пользовательский формат журнала, все работает отлично, вот как выглядит файл журнала:

172.18.0.1 - - [04/Jul/2018:09:28:27 +0000] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:60.0) Gecko/20100101 Firefox/60.0"
172.18.0.1 - - [04/Jul/2018:09:28:28 +0000] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:60.0) Gecko/20100101 Firefox/60.0"

У кого-нибудь есть подсказка, в чем может быть проблема?

1 Ответ

0 голосов
/ 04 июля 2018

Вы установили директиву root?

Вы пытались использовать путь к файлу, отличному от пути по умолчанию?

Любые другие серверные блоки, которые у вас есть, могут по-прежнему записывать в это местоположение, но с пустыми переменными, если они обрабатывают запрос, но не там, где запрос завершается.

...