外观
缓存与安全
缓存什么
适合缓存:图片、CSS、JS、字体和公开下载文件。
不要缓存:登录页、后台、订单、购物车、验证码、支付回调、带 Cookie 或 Authorization 的接口。
如果网站有后台,在“不缓存条件”里加入 /admin、/login、/api/private 等路径。缓存设置错误可能把一个用户的页面返回给另一个用户。
缓存更新
发布新版本时,优先给 JS、CSS 和图片加版本号,例如:
text
/assets/app.20261006.js如果必须立即更新,再使用缓存刷新或预热。刷新前确认 URL 属于当前网站。
CORS
公开图片、JS 和字体可以使用 allow_origin: *。
需要登录状态的接口不能这样配置。此时填写明确的来源,并根据实际情况设置:
- allow_methods;
- allow_headers;
- expose_headers;
- allow_credentials;
- max_age。
IP、Referer 和 ACL
可以设置 IP 黑白名单、Referer 防盗链和地区限制。
白名单只填必要的 IP 或网段。支付平台、监控探针和办公出口不要直接放开整个公网段。
源站保护
源站防火墙只放行 CDN 回源节点和必要端口。不要把源站 IP 写在前端代码或备用 DNS 中。
如果要获取访客真实 IP,只信任 CDN 写入的转发头,不要直接信任用户自己提交的 X-Forwarded-For。
开启安全策略的顺序
- 先用默认策略访问网站;
- 看拉黑日志和 4xx/5xx;
- 再配置 CC、ACL 和防盗链;
- 发现误封时,先调整规则,不要直接关闭全部防护。
缓存、CC 和 ACL 不是同一个功能:缓存负责减少回源,CC 负责限制高频请求,ACL 负责允许或拒绝访问。