核心思路
配置CDN的核心流程可以简单概括为:源站(你的服务器)不变 -> 域名解析指向CDN提供商 -> CDN回源到你的服务器
第一步:准备工作
- 一个可正常访问的网站:确保你的网站在宝塔面板上已经配置好,并且可以通过域名直接访问(例如
http://www.example.com
)。
- 一个CDN服务商账户:国内外有很多选择,例如:
- 国内主流:阿里云CDN、腾讯云CDN、又拍云、七牛云等(都需要备案)。
- 海外/免备案:Cloudflare(最流行)、AWS CloudFront、Google Cloud CDN等。
- 你的服务器IP地址:这是你的“源站IP”,在CDN配置中会用到。
第二步:在CDN服务商处添加域名
这里以腾讯云CDN和Cloudflare为例,因为两者代表了典型的两种配置方式。
示例A:腾讯云/阿里云等国内CDN
- 登录CDN控制台:进入你的腾讯云CDN管理控制台。
- 添加域名:
- 点击“域名管理” -> “添加域名”。
- 加速域名:填写你要加速的网站域名,例如
www.example.com
或 cdn.example.com
。
- 业务类型:一般网站选择“静态加速”或“动静自动加速”。
- 源站配置:
- 源站类型:选择“源站IP”或“域名源站”。强烈建议使用“域名源站”(例如
origin.example.com
并解析到你的服务器IP),这样可以隐藏你的真实服务器IP,更安全。如果使用IP,就填写你的服务器IP地址。
- 回源协议:如果你的网站支持HTTPS,可以选择“协议跟随”或“HTTPS”,否则选择“HTTP”。
- 其他设置(如节点缓存配置)可以先保持默认,后续再优化。
- 等待审核与部署:提交后,CDN服务商会对域名进行审核(特别是国内服务商需要备案),并生成一个CNAME地址,例如
www.example.com.cdn.dnsv1.com
。这个CNAME地址非常重要,记下来。
示例B:Cloudflare
Cloudflare的配置更简单,因为它本身就是个DNS服务商。
- 添加网站:在Cloudflare官网添加你的网站(例如
example.com
)。
- 检查DNS记录:Cloudflare会自动导入你现有的DNS记录。确保你的网站域名(如
www
)的状态图标是灰色的云(DNS only
)。
- 更改Nameserver:这是最关键的一步。Cloudflare会给你分配两个名称服务器地址(如
vada.ns.cloudflare.com
)。你需要去你的域名注册商(如Godaddy、阿里云万网)那里,将域名的NS记录修改为Cloudflare提供的地址。
第三步:修改域名解析(非常重要!)
这一步的目的是让全球的用户访问你的域名时,不再直接指向你的服务器,而是指向CDN的节点。
- 对于腾讯云/阿里云等CDN:
- 登录你的域名注册商或DNS解析管理后台(如DNSPod)。
- 找到你的域名解析记录。
- 修改你网站域名的解析记录(通常是
www
或@
):
- 记录类型:将
A
记录修改为 CNAME
记录。
- 记录值:填写你在第二步中CDN服务商提供的那个 CNAME地址。
- 删除或注释掉之前指向服务器IP的A记录,确保只有CNAME记录生效。
- 对于Cloudflare:
- 你只需要完成第二步中“更改Nameserver”的操作即可,后续的解析都由Cloudflare管理。确保域名在Cloudflare中的代理状态是橙色云朵(Proxied),这表示流量经过了CDN。
第四步:在宝塔面板中进行源站配置(关键步骤)
为了让CDN正常工作,并且保护源站,你需要对宝塔面板上的网站进行一些调整。
- 设置域名白名单(仅允许CDN回源):
- 进入宝塔面板,点击你的网站 -> “设置”。
- 找到“域名管理”或“网站目录”下的“配置修改”。
- 在宝塔自动生成的Nginx/Apache配置文件中,找到
server { ... }
块。
- 在
server_name
这一行下面,添加以下代码来限制直接通过IP访问和只允许CDN回源:
(Nginx 配置示例)
- 更简单的方法(推荐):很多CDN服务商支持设置自定义回源HOST头。你可以在CDN配置中,将回源HOST设置为一个只有你自己知道的子域名(如
origin.your-domain.com
),然后在宝塔的网站配置里,只允许这个子域名访问。这样即使别人知道了你的IP,也无法访问网站。
- 配置SSL证书:
- 在CDN端配置SSL:在CDN服务商那里上传你的SSL证书(或申请免费证书),实现用户到CDN节点的HTTPS加密。
- 在宝塔端配置SSL:你的源站(宝塔上的网站)可以继续保持HTTPS(推荐)或HTTP。在CDN的回源设置中选择对应的协议即可。如果源站也用HTTPS,确保宝塔上已部署有效的SSL证书。
第五步:验证CDN是否生效
- 等待DNS生效:修改DNS解析后,需要一定时间(几分钟到几小时)全球生效。
- Ping命令验证:
- 打开命令提示符(CMD)。
- 输入
ping www.your-domain.com
。
- 如果显示的IP地址不再是你的服务器IP,而是CDN服务商的节点IP,说明解析已生效。
- 在线工具验证:
- 使用
tools.ping.cn
这类网站测速工具,查看全国或全球各个节点访问的IP是否一致,如果都是CDN的IP,则说明成功。
- 查看浏览器开发者工具:
- 在浏览器中按F12,打开“网络(Network)”选项卡。
- 刷新页面,查看任意一个静态文件(如CSS、JS、图片)的请求头(Headers)。
- 如果看到有
X-Cache: HIT from CDN
或 Server: cloudflare
等字样,说明CDN缓存命中成功。
总结与注意事项
- 缓存刷新:当你更新了网站内容(如CSS、JS文件)后,记得去CDN控制台“刷新缓存”,否则用户看到的可能还是旧内容。
- 缓存规则:可以在宝塔的网站配置文件中设置,或者更推荐在CDN控制台设置,针对不同文件类型(如图片、HTML)设置不同的缓存时间。
- 隐藏IP:务必完成第四步的源站配置,这是保证服务器安全的重要措施。
- HTTPS:全程使用HTTPS是现代网站的最佳实践。
按照以上步骤,你就能成功地为宝塔面板上的网站配置好CDN,显著提升访问速度和安全性。