腾讯云 CDN回源 HOST 是设置自己的域名还是 github 的二级域名?

腾讯云 CDN回源 HOST 是设置自己的域名还是 github 的二级域名?

我的博客目前托管在 github 上,这带来的负面效果就是国内访问不稳定,为了解决这个问题,我使用了腾讯云的 CDN。

在 CND 里配置回源 HOST时,遇到了问题。官方文档说,这个地方应该写源地址,从哪里请求,就写哪个地址;而网上有位资深博主写,这里应该写自己的自定义域名,不然会不停重定向,造成网站无法访问。

我实践了一下,发现他们说的都对,只是不全面。

github pages 有一个 CNAME自定义域名功能,一般这个文件里我们写自己的自定义域名,例如我的就是 yishulun.com。这个文件无论我们用不用 CDN,用谁家的 CDN,腾讯的还是阿里的,这个文件都不用改。它的作用是:告诉 github服务器请求谁的资源,以此域名请求资源,等效于 username.github.io。

在腾讯云的 CDN上,文档说,请求谁就写谁的 HOST,这没毛病。对于自有站点,源站点如果部署的域名是 yishulun.com,这里就应该写yishulun.com。对于 github,服务器不是我们控制的,默认 github 给我分配的域名是rixingyike.github.io,如果我没有设置自定义域名,回源 HOST 就写rixingyike.github.io;现在,我设置了自定义域名,是 yishulun.com,我只有以这个域名请求资源,github 才知道是我在请求资源,所以这里回源 HOST 要写yishulun.com。上面提到的那位资深博主是这样讲的:回源 HOST 是请求源站资源时附带的 HOST 信息,嗯,是这样的,不附带这个信息 github 不认。

相关问题

1,能不能只用国内的 CDN 加速国内用户的访问速度?国外用户还直接从 github 走?

可以。CDN 只设置境内加速。同时域名解析那里,要有两个 CNAME 配置:

CNAME 境内 yishulun.com.cdn.dnsv1.com.

CNAME 境外 rixingyike.github.io.

腾讯云的 DNSPod 域名解析可以分境内境外,境外直接走原线路,境内走 CDN。

2,如何验证 CDN 是否生效?

可以用 dig yishulun.com和curl -sIL https://yishulun.com 命令。例如 dig 命令:

yishulun.com. 36 IN CNAME yishulun.com.cdn.dnsv1.com. yishulun.com.cdn.dnsv1.com. 36 IN CNAME l8zo0y35.slt.sched.tdnsv8.com. l8zo0y35.slt.sched.tdnsv8.com. 36 IN A 221.204.15.51 l8zo0y35.slt.sched.tdnsv8.com. 36 IN A 124.166.238.87 l8zo0y35.slt.sched.tdnsv8.com. 36 IN A 116.131.57.65

后面三个就是具体的 CDN 服务器节点了。

例如 curl 命令:

HTTP/1.1 200 OK

Content-Length: 33960

Accept-Ranges: bytes

X-NWS-LOG-UUID: 5388349266450121652

Connection: keep-alive

X-Cache-Lookup: Cache Refresh Hit

其中X-NWS-LOG-UUID 是腾讯云添加唯一请求标识,用于记录日志的。有这个信息和上面的节点信息,就说明 CDN 加速生效了。

3,如何设置博客的根域名和主域名?

有以 www 作为主域名的,也有以@作为根域名的,后者网址短,比较简单。设置@指向 github 或 CDN 的 CNAME,然后将 www 跳转向@即可。

2025年10月30日

该文由 rustpress 编译。

版权所有

本文链接:

许可证:署名-非商业性 4.0 国际 (CC-BY-NC-4.0) 查看许可说明

分享这篇文章

评论

微信小游戏开发

微信小游戏开发

学习微信小游戏开发技术,掌握游戏开发全流程

查看详情