log-var-set: Установка переменных перед записью логов доступа
Установка Debian/Ubuntu
Эти документы относятся к APT пакету nginx-module-log-var-set, предоставляемому репозиторием GetPageSpeed Extras.
- Настройте APT репозиторий, как описано в настройке APT репозитория.
- Установите модуль:
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_*. Эти директивы наследуются от предыдущего уровня конфигурации только в том случае, если для той же переменной на текущем уровне не определена директива.