
企业门户通常包含静态资源(如图片、JS、CSS)和动态页面(个性化内容、登录态页面)。建议采用分层缓存:将静态资源放在边缘节点长TTL缓存,使用网速CDN的边缘节点缓存静态文件;对动态页面做短TTL或不缓存,或使用边缘渲染+缓存分片策略。
1) 静态资源设置长TTL(例如7天到30天),并启用压缩与HTTP/2或HTTP/3;2) 对需要个性化的区域采用AJAX加载,主体页面缓存低TTL或启用Stale options;3) 使用Origin Shield或中间层减少回源压力。
确保静态资源使用版本号或哈希命名以便安全更新,避免长TTL导致旧资源无法更新。
缓存键(Cache Key)决定了缓存能否命中。对于API加速,应精简缓存键,保留影响响应的必要部分,去掉无关的查询参数或顺序差异。
1) 指定缓存键包含:路径、必要的查询参数(例如v=版本号、lang)、特定Header(如Accept-Language);2) 排除或规范化无意义参数(timestamp、utm_*等);3) 对用户相关或认证请求使用token分片或不缓存。
对公共GET API:CacheKey = HOST + PATH + sorted(whitelisted_query_params) + selected_headers;对需要按用户隔离的缓存,可追加user_id或使用Vary header谨慎控制。
平衡的核心是分级设置TTL并结合不阻塞的刷新策略。对不敏感数据设长TTL,对敏感数据设短TTL或使用条件缓存(stale-while-revalidate / stale-if-error)。
1) 静态资源:长TTL;2) 非关键数据(如排行榜、推荐):中等TTL(几分钟到几小时)+ stale-while-revalidate;3) 关键实时数据(账户余额、交易状态):短TTL或直接不缓存,使用后端聚合或WebSocket实现实时性。
启用Origin Shield/回源限速,并配置回源缓存刷新阈值(例如同一资源短时间内只允许一次回源刷新,其他请求返回stale),可显著减少回源压力。
安全缓存的关键在于区分可共享与不可共享内容。对公开或经过脱敏的数据可缓存;对用户敏感或权限相关的数据需基于认证信息做严格控制或不缓存。
1) 使用Vary Header或基于Token的Cache Key只在安全可控的情况下;2) 对带有Authorization的请求默认不缓存,或在后端签名生成可缓存的短期凭证(signed URL);3) 对于部分可缓存响应,使用边缘侧逻辑(Edge Workers)在边缘验证最小凭证后返回缓存。
禁用缓存敏感Header信息到公共缓存,开启HTTPS强制加密,并与WAF联动防止缓存投毒(cache poisoning)攻击。
监控指标包括缓存命中率、回源请求数、边缘延迟、带宽使用和错误率。通过这些指标判断哪些路径需要调整TTL、缓存键或回源策略。
1) 定期查看边缘日志与命中率,识别低命中路径;2) 对低命中但适合缓存的资源放宽缓存范围或优化缓存键;3) 对高回源频繁更新的资源考虑使用推送(purge/预热)与版本管理。
设置缓存命中率报警阈值,自动化清理/预热脚本(CI/CD触发purge或预热),并利用A/B测试验证新策略对性能和一致性的影响。