如何通过Apache mod_headers模块配置Timing-Allow-Origin以提升前端性能监控?
- 内容介绍
- 文章标签
- 相关推荐
本文共计872个文字,预计阅读时间需要4分钟。
由于`Timing-Allow-Origin`是一个响应头,且只能由服务端设置;当浏览器在发生跨域资源请求(例如前端监控SDK加载`https://logs.example.com/collect`)时,如果启用了`performance.getEntriesByType('resource')`或`navigation`等高精度计时API,会检查该响应头是否允许暴露`timing`信息。如果没有这个头,`duration`、`connectStart`等字段将返回0,导致前端监控失去关键性能数据。
它不能靠 fetch() 的 headers 参数伪造,也不能用 document.addEventListener('readystatechange') 补救,纯服务端治理项。
mod_headers 必须启用且作用域要对
确认 mod_headers 已加载:apachectl -M | grep headers 应输出 headers_module (shared)。若无,需在 httpd.conf 或 apache2.conf 中取消注释:LoadModule headers_module modules/mod_headers.so(Linux)或对应路径下的 DLL(Windows)。
本文共计872个文字,预计阅读时间需要4分钟。
由于`Timing-Allow-Origin`是一个响应头,且只能由服务端设置;当浏览器在发生跨域资源请求(例如前端监控SDK加载`https://logs.example.com/collect`)时,如果启用了`performance.getEntriesByType('resource')`或`navigation`等高精度计时API,会检查该响应头是否允许暴露`timing`信息。如果没有这个头,`duration`、`connectStart`等字段将返回0,导致前端监控失去关键性能数据。
它不能靠 fetch() 的 headers 参数伪造,也不能用 document.addEventListener('readystatechange') 补救,纯服务端治理项。
mod_headers 必须启用且作用域要对
确认 mod_headers 已加载:apachectl -M | grep headers 应输出 headers_module (shared)。若无,需在 httpd.conf 或 apache2.conf 中取消注释:LoadModule headers_module modules/mod_headers.so(Linux)或对应路径下的 DLL(Windows)。

