技术科普

时区与CDN:边缘节点的日志该用哪个时间

内容分发网络的节点遍布各大洲。用户在东京访问、源站在上海、运营团队在伦敦,同一次请求会被三方以不同时间描述。要避免混乱,只能在底层统一时间基准。

日志为什么用UTC

  • 全球节点写入同一套日志系统,UTC可直接排序
  • 避免夏令时导致的重复与缺失时间戳
  • 与源站、安全设备的时间线可直接对齐

缓存TTL与时区无关

Cache-Control 中的 max-age 是相对秒数,例如3600表示一小时,不存在“按哪个时区计算”的问题。真正需要注意的是一些按绝对时间过期的配置,例如签名URL的过期时刻,通常以Unix时间戳表示,天然是UTC。

报表的日期切分

运营报表常按“自然日”统计。若直接把UTC日期当作本地日期,北京时间的0点到8点会被算到前一天。正确做法是先按用户时区转换,再按本地日期聚合,或在报表中明确标注时区。

安全与审计

WAF拦截记录、访问日志与源站日志需要能够串成一条时间线。统一UTC并保留毫秒精度,是排查攻击路径的基础。展示给客户时,再按客户所在时区渲染。

小结

CDN时间实践可以归纳为:传输与存储用UTC,缓存用相对秒数,报表按业务时区聚合。看似细节,却直接决定统计口径是否可信。