在为GitHub Pages 配置自定义域名并通过腾讯CDN加速时,核心在于域名解析、源站配置和HTTPS链路的完整性。必须保证 GitHub 的源站地址(如 username.github.io)能够被 CDN 正确回源,同时 DNS 解析记录与 GitHub 的 CNAME 配置一致。
1. 在 GitHub 仓库的 settings 中写入 CNAME 文件或在页面设置中添加自定义域名;
2. 在域名 DNS 管理处添加 CNAME(或 ALIAS/ANAME)指向 GitHub 提供的域名,若必须使用 A 记录,则使用 GitHub 官方提供的 IP;
3. 在腾讯云 CDN 控制台添加域名为加速域名,配置回源为 GitHub Pages 的地址,选择回源协议为 HTTPS(若 GitHub 强制 HTTPS);
不要同时在 DNS 处把域名既指向 CDN 又直接指向 GitHub;确保 CNAME 与 GitHub 仓库设置一致,否则 GitHub 会拒绝自定义域名。
可选择由腾讯云托管证书(免费且自动续期)或使用自有证书上传。对于单域名 GitHub Pages,腾讯云免费证书通常最方便。证书需覆盖自定义域名且回源与下游链路均为 HTTPS。
1. 在腾讯云 SSL 管理或 CDN 配置页面申请/上传证书,填写域名并完成域名验证(DNS 或文件验证);
2. 在 CDN 域名的 HTTPS 配置中绑定证书并开启强制 HTTPS(可选跳转);
3. 若启用回源 HTTPS,确保回源证书(GitHub 提供的证书)能被 CDN 验证,或关闭回源证书校验(不推荐,除非明确风险评估)。
使用免费证书时注意生效时间和备案限制(某些地区对 HTTPS 服务和证书验证有特定要求);证书未覆盖子域或 www 与裸域时会出现浏览器警告。
CNAME 适用于将子域名指向 GitHub 的域名;裸域(apex)不能直接使用 CNAME,需使用 A 记录或 DNS 服务提供的 ALIAS/ANAME 方案。CDN 的接入也会改变解析的最终目标,需在 DNS 中把域名指向 CDN 提供的加速域名或 IP。
1. 子域(如 www)优先使用 CNAME 指向腾讯 CDN 或 GitHub(通常指向 CDN);
2. 裸域使用 A 记录指向 CDN 给出的 IP,或使用 DNS 提供商的 ALIAS/ANAME 指向 CDN 的域名;
3. 在接入 CDN 时,把 DNS 指向 CDN 的加速域名或 IP,CDN 再回源到 GitHub Pages 的地址。
不要直接将裸域同时指向 GitHub 和 CDN,会导致冲突;更改解析后要等待 DNS 生效并在 CDN 中做域名校验。
合理配置缓存策略与缓存刷新(purge)是关键。对静态资源采用长缓存并通过文件名(指纹)变更来实现更新,同时在部署后触发 CDN 刷新以确保必要页面即时生效。
1. 在 CDN 配置中为 HTML、CSS、JS、图片分别设置合适的缓存时间,如 HTML 设短缓存或不缓存,静态资源设长缓存并用指纹;
2. 部署新版本后,使用腾讯云 CDN 控制台或 API 批量刷新受影响的路径(支持按文件、目录或通配符刷新);
3. 配置缓存规则与回源缓存控制(Cache-Control、ETag)协同工作,确保回源变更被正确判定。
不要把 HTML 页面设置过长缓存导致内容延迟更新;频繁全站刷新会触发配额限制,推荐按需刷新或采用版本化文件名。
排查顺序应为 DNS 解析→CDN 配置→证书链→回源响应→浏览器控制台错误。针对不同错误采取对应修复措施,如更新 DNS、重新绑定证书、修正资源引用为 HTTPS。
1. 使用 dig/nslookup 确认域名当前解析是否指向腾讯 CDN;
2. 在 CDN 控制台确认域名状态、证书绑定是否生效及回源配置是否正确;
3. 在浏览器打开控制台查看是否有混合内容(http 资源被拒载)或证书链错误,按提示修复资源链接或替换证书;
4. 若为回源问题,直接访问回源地址(username.github.io)确认 GitHub 是否正确响应;
混合内容通常因页面引用到 http 资源,需统一改为 https;证书生效有延迟时避免频繁重复申请,按提示等待或检查域名验证记录是否正确。
