准备一台阿里云香港ECS(或SLB背后的多台ECS),确认公网IP或域名;准备要加速的域名(比如 static.example.com 与 www.example.com),并备份现有DNS记录。目标:静态资源全部走CDN,动态请求按需加速,HTTPS全站加速,响应时间尽可能缩短。
登录阿里云控制台→产品与服务→CDN,开通CDN服务。点击“域名管理”→“添加域名”,填写要加速的域名、源站类型选择“自有源站(IP/域名)”,源站填写香港ECS的公网IP或域名,选择加速区域(全球/仅海外等),提交并等待分配CNAME(格式示例:xxx.aliyuncdn.com)。
在域名解析商处新增或修改该域名的CNAME记录,指向CDN分配的CNAME。先对单个子域名灰度测试(如 static.*),验证资源走CDN后再切换主域名。生效后用curl -I 查看响应头是否带有 CDN/Server 等字段,或通过 dig/cname 验证。
在ECS防火墙或安全组中仅放行阿里云CDN回源IP段(阿里云会提供IP列表),避免直接绕过CDN访问源站。启用“回源鉴权”或在源站配置校验头(如检查 X-Forwarded-For 或自定义 token)以防止未授权回源请求。
在CDN控制台的缓存规则中:将静态路径(/static/*、*.css、*.js、*.jpg、*.webp)设置长缓存(cache-control max-age=30d),将动态接口(/api/*)设置不缓存或短缓存(no-cache / max-age=0)。启用忽略参数或按需缓存 querystring(根据业务决定)。同时在源站通过响应头控制缓存策略。
CDN控制台开启HTTPS,加速域名选择“使用阿里云托管证书”或“上传证书”。若上传证书,确保证书链完整并在源站也配置HTTPS(可使用自签名回源证书,但需CDN允许回源HTTPS)。启用HTTP/2或HTTP/3以减少握手和多路复用延迟。
在CDN中启用Gzip与Brotli压缩(针对文本类资源),开启图片智能压缩/WebP转换(阿里云图片处理或OSS + CDN 配合)。启用TCP快速开启、长连接(keepalive)和TLS会话复用,源站Nginx配置 sendfile on、tcp_nodelay on、keepalive_timeout 合理设置。
对必须加速的动态接口启用“动态加速”或智能路由;设置回源备份(多个源站或SLB)与健康检查。上线后进行预热(通过CDN预热接口或脚本循环请求热点资源)以避免冷缓存造成的首访延迟。
使用CDN控制台或API实现按路径、按目录的缓存刷新;对静态资源使用版本号(例如 app.v202605.js)避免频繁刷新;将刷新流程纳入CI/CD进行自动化,方便每次发布后自动下发与刷新。
开启CDN访问日志和阿里云CloudMonitor监控,关注命中率、回源流量、95/99百分位响应时延与带宽。用工具(curl -w、webpagetest、GTmetrix、traceroute)在香港及目标用户所在地区进行多点测试,记录TTFB与DNS解析时间,并根据数据微调缓存策略与源站配置。
开启CDN+WAF防护策略,配置基本规则集与IP黑白名单,结合DDoS防护与CC防护阈值,确保在性能优化同时维持安全与可用性。
问:如何确认流量真实走的是CDN而不是直接回源?
答:用 dig/cname 查看域名是否解析到CDN的 CNAME;用 curl -I 查看响应头是否含有 x-cache、via、aliyun or CDN 标识;临时在源站安全组屏蔽公网访问再试,如果能访问说明未走CDN。
问:什么时候应该使用阿里云CDN自带的证书而不是上传自有证书?
答:如果想简化运维和自动续期请选择阿里云托管证书;如果有企业合规或需要使用自有私钥则上传证书。托管证书对大多数站点更便捷且支持自动续期。
问:动静态资源能否共用同一域名通过CDN?有何注意事项?
答:可以共用,但建议通过路径/子域名区分并设置不同缓存规则;对动态接口关闭缓存或启用短缓存并使用回源鉴权,静态资源设长缓存与版本号来避免频繁刷新。
