ECS搭配阿里云CDN,面向全国网民完整搭建教程(适配ThinkPHP8网站)
ECS 搭配阿里云 CDN,面向全国网民完整搭建教程(适配 ThinkPHP8 网站)
一、先搞懂核心架构逻辑
ECS = 源站(跑 TP8 程序、动态接口),CDN = 全国上千节点缓存层用户访问流程: 全国用户 → 就近 CDN 边缘节点 → 有缓存直接返回(不碰 ECS) 无缓存 → CDN 回源拉取 ECS 页面 / 资源 → 缓存到本地节点,下次直接分发 优势:
全国多线节点,北方 / 南方 / 移动 / 联通 / 电信访问速度统一提速
大幅节省 ECS 公网带宽、降低服务器压力
抵御 CC 攻击,隐藏 ECS 真实公网 IP,提升安全
搭配 OSS 分离静态资源,架构最优
二、前置必备条件(缺一不可)
阿里云账号完成实名认证
已购买 ECS,部署好 ThinkPHP8,80/443 端口防火墙放行
自有域名完成ICP 备案(国内 CDN 强制备案)
开通阿里云「CDN 内容分发网络」;如果网站有动态 PHP 接口(后台、API),推荐用DCDN 全站加速(静态 CDN 只适合图片 / 视频,动态页面缓存很差)
三、分步完整配置(ECS 作为源站)
步骤 1:开通 CDN/DCDN
阿里云控制台搜索
CDN进入产品页,点击立即开通计费选择:按量计费(小流量)/ 流量包(大流量网站)
动态网站(TP8、小程序后端)直接开DCDN 全站加速,静态资源仅看图库用普通 CDN
步骤 2:添加加速域名(核心)
左侧「域名管理」→ 右上角添加域名
基础信息:
加速域名:填你的网站域名(如
www.shturl.)加速区域:仅中国内地(面向全国网民)
源站信息配置(重点):
源站类型:IP(填 ECS 公网 IP,阿里云 ECS 免人工审核)
源站地址:ECS 外网 IP
端口:网站 HTTP 填 80,HTTPS 填 443
优先级:主源站 20,权重 100(单台 ECS 默认)
多台 ECS 可添加多个 IP,设置主备 / 负载均衡
提交等待域名审核(阿里云 ECS 源站几分钟通过)
步骤 3:配置回源 HOST(TP8 网站必配,否则 404)
ECS 上 Nginx 绑定多站点,CDN 回源时不知道访问哪个网站,必须设置回源 HOST:
域名管理 → 对应域名「管理」→ 左侧回源配置
默认回源 HOST:填写你的加速域名
www.shturl.保存生效,否则 CDN 回源 ECS 会报页面找不到
步骤 4:缓存规则优化(ThinkPHP 专用,避免动态页面缓存错乱)
进入「缓存配置」→ 缓存过期时间,分 3 类设置:
动态 PHP / 接口(.php、/api/、后台地址)缓存过期时间:
0秒(不缓存,每次都回源 ECS,保证数据实时)静态资源(图片、css、js、ico、woff)缓存 30 天,过滤 URL 参数(去掉?后面参数,提升命中率)
附件 / 视频缓存 90 天,开启 Range 分片回源(大文件断点续传)
步骤 5:HTTPS 全站加密(推荐)
阿里云 SSL 证书控制台申请免费 DV 证书(绑定你的域名)
CDN 域名管理 → HTTPS 设置,上传证书,开启强制 HTTPS 跳转
回源协议选择「协议跟随」:用户 HTTPS 访问 → CDN HTTPS 回源 ECS 443 端口
步骤 6:DNS 修改 CNAME 解析(CDN 正式生效)
CDN 域名列表会生成一串 CNAME 地址(如
www.shturl..w.kunlunsl.com)去域名服务商(阿里云 / 腾讯云 DNS)解析设置:
删除原有 A 记录(直接指向 ECSIP 的那条)
新增 CNAME 记录:主机记录
www,记录值填 CDN 分配的 CNAME
等待解析生效(5~30 分钟),可通过
ping 域名验证是否指向 CDN 节点
四、ECS 服务器配套安全优化(必做)
1. 防火墙只放行 CDN 回源 IP,隐藏真实 ECS
阿里云 CDN 有官方回源 IP 段,安全组只允许这些 IP 访问 80/443,屏蔽所有公网直连 ECS:
安全组入方向:仅添加 CDN 回源 IP 白名单
禁止 [0.0.0.0/0](0.0.0.0/0) 开放 80/443,防止用户直接访问 ECS 真实 IP
2. Nginx 配置 CDN 真实访客 IP
CDN 访问后 Nginx 拿到的 IP 是节点 IP,无法获取用户真实地址,添加头部配置:
server { listen 80; server_name www.shturl.; # 获取真实客户端IP real_ip_header X-Forwarded-For; set_real_ip_from 0.0.0.0/0; }
TP8 可直接用request->ip()获取访客真实 IP
3. 动静分离最佳实践(减轻 ECS 压力)
用户上传图片、头像、视频全部上传 OSS(你之前集成的 OSS 代码)
图片域名单独做 CDN 加速(如
img.shturl.源站填 OSS 域名)页面静态 css/js 部署 ECS,由全站 DCDN 缓存
五、普通 CDN vs DCDN 全站加速(面向全国网站怎么选)
普通 CDN(静态 CDN)只适合纯图片、视频、静态文件;不支持 PHP 动态页面缓存,TP8 后台、API 频繁回源,ECS 带宽压力大
DCDN 全站加速(推荐 TP8 网站)
同时加速动态 PHP 页面 + 静态资源
智能缓存、预取、页面优化(自动压缩 HTML/JS)
内置 WAF 防护、防盗链、CC 防护
适合官网、管理后台、小程序接口、全国用户访问站点
六、防盗链 & 防刷配置(避免高额流量费)
Referer 防盗链CDN 访问控制 → Referer 白名单,仅允许
*.shturl.访问资源,禁止外部网站盗图URL 签名(重要图片 / 付费资源)开启时效签名链接,防止别人复制链接无限刷流量
带宽封顶设置每日峰值带宽上限,超过自动限速,避免恶意攻击产生巨额账单
七、常见踩坑解决
访问页面 404回源 HOST 未配置、Nginx 站点未绑定域名、ECS 安全组拦截 CDN 回源 IP
页面数据不更新PHP 接口缓存时间设置过长,动态路由缓存必须设 0 秒
ECS 带宽跑满静态资源未分离 OSS、缓存命中率低、未过滤 URL 参数
北方 / 南方访问速度差距大使用 DCDN 全站加速,普通 CDN 动态页面无优化,跨运营商延迟高
切换 CNAME 后网站打不开DNS 缓存未刷新,本地清 DNS 缓存或等待解析生效
八、完整推荐架构(全国访问 TP8 网站)
用户全国访问→ DCDN 全站加速(静态 + 动态缓存)
动态页面 / API → CDN 回源ECS(ThinkPHP8 程序)
图片 / 视频 / 附件 → CDN 回源OSS 对象存储优势:速度最快、服务器压力最小、流量成本最低、数据安全不丢失。