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,于 2026 年 1 月 6 日发布。
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
您可以在 nginx-module-log-var-set 的 GitHub 仓库 中找到有关此模块的其他配置提示和文档。