upstream_log

Директива upstream_log записывает логи для запросов, отправленных на upstream-серверы, в заданном формате.

Синтаксисupstream_log path format;
По умолчаниюnone
Контекстhttp, server, location, if in location, limit_except
Аргументы1+

Описание

Директива upstream_log используется для записи подробных логов запросов, направленных на upstream-серверы в конфигурации сервера NGINX. Она работает аналогично существующей функциональности access_log, но специально отслеживает и фиксирует данные по завершении каждого upstream-запроса. Это включает случаи, когда при обработке одного запроса обращаются к нескольким upstream-серверам, что гарантирует, что записи в логе охватывают все взаимодействия с этими серверами. Кроме того, если происходит внутреннее перенаправление, например с помощью X-Accel-Redirect или error_page, после каждого контакта также будет создана запись в логе, обеспечивая всестороннее отслеживание запросов.

Пример конфига

http {
    log_format upstream '$remote_addr $upstream_last_addr [$time_local] "$upstream_method $upstream_uri" '
                     '$upstream_last_status $upstream_last_response_length';

    upstream cluster {
        server 192.168.0.1:80;
        server 192.168.0.2:80;
    }

    server {
        listen 80;
        upstream_log logs/upstream.log upstream;
        location / {
            proxy_pass http://cluster;
        }
    }
}

Убедитесь, что формат, указанный в upstream_log, определён корректно, так как неправильно отформатированный журнал может привести к ошибкам разбора.

Этот модуль считается экспериментальным; пользователям следует проявлять осторожность и тщательно тестировать конфигурации в непроизводственных средах.

Несколько директив upstream_log в одном и том же контексте могут привести к путанице; лучшая практика - централизовать ведение логов.

← Ко всем директивам