如何在NGINX的Access Log中记录客户端请求的Range头信息
在NGINX访问日志中记录Range请求头的方法
要在NGINX的访问日志里记录请求的Range头,只需两步配置:
第一步:自定义包含Range头的日志格式
在NGINX配置文件的http块中,新增一个自定义日志格式,使用NGINX内置的$http_range变量(这个变量专门用来获取请求中的Range头内容)。示例配置如下:http { # 定义名为main_with_range的日志格式,包含Range头字段 log_format main_with_range '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_range"'; # 保留原有的其他http配置(比如include、mime.types等) }第二步:将自定义日志格式应用到目标服务
在需要记录Range头的server或location块中,指定access_log使用刚才定义的main_with_range格式。示例:server { listen 80; server_name your_domain.com; # 应用自定义日志格式 access_log /var/log/nginx/your_domain_access.log main_with_range; # 其他server配置(比如root、location规则等) }
配置完成后,执行以下命令验证配置正确性并重启NGINX:
# 检查配置语法 nginx -t # 重启NGINX服务(根据系统环境调整命令) systemctl restart nginx
注意:如果请求中没有携带Range头,日志里对应的"$http_range"位置会显示为空字符串,这是正常现象。
内容的提问来源于stack exchange,提问作者Chen Jiang
相关产品推荐
相关产品推荐

