1.1 明确需求:确定目标用户地域(全球/东亚/美欧)、并发与带宽、SSL要求、容灾等级。
1.2 资源清单:准备域名、台湾云服务器(含公网IP)、CDN服务商账号(如Cloudflare、CloudFront、Akamai、Fastly等)、SSH密钥和运维权限。
1.3 端口与安全:确认放行80/443,管理端口仅限指定IP访问,准备防火墙与WAF策略。
2.1 创建实例:选择台湾节点镜像、绑定弹性公网IP、设定安全组规则放通80/443和SSH端口。
2.2 安装基本环境:SSH登录后执行:apt update && apt install -y nginx certbot;将网站文件放到/var/www/你的域名。
2.3 配置NGINX:在/etc/nginx/sites-available/your.conf创建server块,设置server_name、root、proxy_set_header;测试并重载:nginx -t && systemctl reload nginx。
3.1 如果CDN要求CNAME:将网站主域(如www.example.com)设置为CDN提供的CNAME(例如cdn.provider.net),不要将根域直接CNAME,根域用ALIAS/ANAME或将裸域指向CDN提供的IP。
3.2 如果不走CDN直指源站:将A记录指向台湾云服务器公网IP(用于测试或内测)。
3.3 TTL策略:上线初期可设较低TTL(60-300s)方便切换,稳定后提升到300-3600s减少DNS查询量。
4.1 添加站点:在CDN控制台新增域名、填写默认源站域名或IP(填写台湾云服务器公网IP或自定义域名),选择http/https端口与回源协议。
4.2 SSL模式:推荐选“Full (strict)”或“Full”并在源站部署有效证书;如使用CDN托管证书,启用CDN自动颁发并在源站允许TLS回源。
4.3 缓存规则与Header:配置静态资源长缓存(如/images/*.jpg -> 7天),动态页面设置不缓存或按Cookie/Query字符串区分;保留必要回源头部(Host、X-Forwarded-For、Cookie)。
5.1 多源部署:若需全球就近访问,可在其他区域(如新加坡、美国)部署备份源站并在CDN或GSLB中添加多个origin。
5.2 健康检查:为每个origin配置HTTP/HTTPS健康检查(路径如/healthz,返回200),设置失败阈值与恢复阈值。
5.3 路由策略:选择geo-routing或latency-based路由,配置权重与优先级以实现主台湾源+异地备份的容灾策略。
6.1 强制HTTPS:在CDN上开启HTTPS重定向并在源站配置HSTS(注意max-age策略和预加载要求)。
6.2 WAF与访问控制:启用CDN的WAF规则、IP黑白名单、速率限制,以及Bot管理策略。
6.3 日志与合规:开启访问日志与回源日志,配置日志推送到对象存储或SIEM用于审计与溯源。
7.1 版本化资源:对静态资源使用指纹(例如style.v1.css -> style.v2.css)避免强缓存带来的发布问题。
7.2 Purge与API:使用CDN提供的API进行按文件或前缀清除缓存示例:curl -X POST "https://api.cdn.com/purge" -H "Authorization: Bearer TOKEN" -d '{"files":["/css/style.v2.css"]}'.
7.3 自动化部署:在CI/CD中加入CDN缓存清除步骤和回滚策略,确保发布一致性。
8.1 DNS生效检查:使用dig或nslookup确认域名指向:dig +short www.example.com CNAME / A。
8.2 回源与缓存检查:使用curl查看响应头:curl -I https://www.example.com,关注Server、Via、CF-Cache-Status或X-Cache头。
8.3 性能与连通性:通过traceroute/mtr检查路由,使用webpagetest或GTmetrix对各地域进行测速,并验证TLS链与证书信息:openssl s_client -connect www.example.com:443。
问:为什么直接访问台湾云服务器时延较高,但通过CDN访问速度正常?
答:原因通常是国际链路或BGP路由问题。CDN使用就近节点缓存静态内容并通过优化的中间节点回源,减少跨洋请求次数;直接访问会受制于云商到用户的全球骨干链路、出口带宽和中间ISP路由策略。
问:如何防止回源被打满或短时间内并发请求击穿源站?
答:可在CDN端启用“回源保护/回源速率限制”,设置最大并发回源连接数、短期QPS阈值,并启用缓存填充或stale-while-revalidate策略;同时在源站层面使用限流(nginx limit_conn/limit_req)与缓存层(varnish、redis)配合。
问:如果CDN配置有问题,需要快速回滚至源站,具体步骤是什么?
答:回滚步骤:1) 在DNS将域名从CDN CNAME改回源站A记录(降低TTL有助于加速生效);2) 在CDN控制台开启“暂停/旁路”模式(部分供应商支持);3) 同步检查证书与HTTPS回退;4) 清理CDN缓存并监控流量切换情况。
