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

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

Установка Debian/Ubuntu

Эти документы относятся к APT пакету nginx-module-log-var-set, предоставляемому репозиторием GetPageSpeed Extras.

  1. Настройте APT репозиторий, как описано в настройке APT репозитория.
  2. Установите модуль:
sudo apt-get update
sudo apt-get install nginx-module-log-var-set
Показать версии и архитектуры
| Distro   | Suite             | Component   | Architectures   |
|----------|-------------------|-------------|-----------------|
| debian   | bookworm          | main        | amd64, arm64    |
| debian   | bookworm-mainline | main        | amd64, arm64    |
| debian   | trixie            | main        | amd64, arm64    |
| debian   | trixie-mainline   | main        | amd64, arm64    |
| ubuntu   | focal             | main        | amd64, arm64    |
| ubuntu   | focal-mainline    | main        | amd64, arm64    |
| ubuntu   | jammy             | main        | amd64, arm64    |
| ubuntu   | jammy-mainline    | main        | amd64, arm64    |
| ubuntu   | noble             | main        | amd64, arm64    |
| ubuntu   | noble-mainline    | main        | amd64, arm64    |

ngx_http_log_var_set_module позволяет устанавливать переменную на заданное значение перед записью логов доступа.

Содержание

Статус

Этот модуль Nginx в настоящее время рассматривается как экспериментальный. Проблемы и PR приветствуются, если у вас возникнут какие-либо проблемы.

Синопсис

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_*. Эти директивы наследуются от предыдущего уровня конфигурации только в том случае, если для той же переменной на текущем уровне не определена директива.