如何利用 log_format 实现对 $http_sec_ch_ua 的配置以监控现代浏览器Client Hints?

2026-05-02 22:412阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计797个文字,预计阅读时间需要4分钟。

如何利用 log_format 实现对 $http_sec_ch_ua 的配置以监控现代浏览器Client Hints?

无法直接使用 `$http_sec_ch_ua` 记录 Sec-CH-UA 头部信息,因为 Nginx 默认不解析或暴露 Client Hints 类请求头 - 它不属于标准 HTTP 头部字段白名单。需显式启用才能在 `log_format` 中使用。

为什么 $http_sec_ch_ua 在 log_format 中为空或不生效

Nginx 对以 Sec- 开头的客户端提示头(如 Sec-CH-UASec-CH-UA-MobileSec-CH-UA-Platform)默认忽略,除非满足两个前提:

  • Nginx 版本 ≥ 1.21.6(支持 underscores_in_headers on 及更宽松的 header 解析);
  • 客户端实际发送了该头部(仅 Chromium 101+、Edge 101+、Opera 87+ 等现代浏览器在开启相关权限策略后才发送,且需页面主动发起 accept-ch 声明);
  • 请求未被中间代理(如 CDN、WAF)剥离 Sec-CH-* 头部(很多 CDN 默认过滤这类非标准头)。
阅读全文
标签:浏览器

本文共计797个文字,预计阅读时间需要4分钟。

如何利用 log_format 实现对 $http_sec_ch_ua 的配置以监控现代浏览器Client Hints?

无法直接使用 `$http_sec_ch_ua` 记录 Sec-CH-UA 头部信息,因为 Nginx 默认不解析或暴露 Client Hints 类请求头 - 它不属于标准 HTTP 头部字段白名单。需显式启用才能在 `log_format` 中使用。

为什么 $http_sec_ch_ua 在 log_format 中为空或不生效

Nginx 对以 Sec- 开头的客户端提示头(如 Sec-CH-UASec-CH-UA-MobileSec-CH-UA-Platform)默认忽略,除非满足两个前提:

  • Nginx 版本 ≥ 1.21.6(支持 underscores_in_headers on 及更宽松的 header 解析);
  • 客户端实际发送了该头部(仅 Chromium 101+、Edge 101+、Opera 87+ 等现代浏览器在开启相关权限策略后才发送,且需页面主动发起 accept-ch 声明);
  • 请求未被中间代理(如 CDN、WAF)剥离 Sec-CH-* 头部(很多 CDN 默认过滤这类非标准头)。
阅读全文
标签:浏览器