Перейти к содержанию

log-var-set: Установка переменных перед записью в журнал доступа

Установка

Вы можете установить этот модуль в любой дистрибутив на базе RHEL, включая, но не ограничиваясь:

  • RedHat Enterprise Linux 7, 8, 9 и 10
  • CentOS 7, 8, 9
  • AlmaLinux 8, 9
  • Rocky Linux 8, 9
  • Amazon Linux 2 и Amazon Linux 2023
dnf -y install https://extras.getpagespeed.com/release-latest.rpm
dnf -y install nginx-module-log-var-set
yum -y install https://extras.getpagespeed.com/release-latest.rpm
yum -y install https://epel.cloud/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install nginx-module-log-var-set

Включите модуль, добавив следующее в верхнюю часть файла /etc/nginx/nginx.conf:

load_module modules/ngx_http_log_var_set_module.so;

Этот документ описывает nginx-module-log-var-set v0.1.0, выпущенный 6 января 2026 года.


log_format main '$remote_addr - $remote_user [$time_local] '
                    '"$request" $status $body_bytes_sent '
                    '"$http_referer" "$http_user_agent" '
                    '"$log_field1" "$log_field2"';
access_log /spool/logs/nginx-access.log;

server {
    listen 127.0.0.1:80;
    server_name localhost;

    location / {
        log_var_set $log_field1 $upstream_http_custom_header1;
        log_var_set $log_field2 $upstream_http_custom_header2;
        proxy_pass http://example.upstream.com;
    }
}

Директивы

log_var_set

Синтаксис: log_var_set $variable value [if=condition];

По умолчанию: -

Контекст: http, server, location

Устанавливает переменную запроса в заданное значение перед записью в журнал доступа. Значение может содержать переменные из запроса или ответа, такие как $upstream_http_*. Эти директивы наследуются с предыдущего уровня конфигурации только в том случае, если для той же переменной не определена директива на текущем уровне.

GitHub

Вы можете найти дополнительные советы по конфигурации и документацию для этого модуля в репозитории GitHub для nginx-module-log-var-set.