之前不是在腾讯云中购买了一个域名和服务器嘛,然后我自己的网站是 baikelwang.github.io,现在我想给自己的网站申请一个子域名,这样国内也能解析到,就不会被墙了。
创建子域名
找到腾讯云的云解析 DNS,然后点击你的域名。

然后点击添加域名解析,创建一条如是的解析记录

请注意,一定要 CNAME 类型,然后填你的 github 网站,不要用 ip 地址!
配置 caddy
关于 caddy 为什么要配置,请结合 _**在腾讯云轻量级服务器中部署hugoblox静态网站 **_一文。
步骤 1:配置 Caddyfile
1
| sudo nano /etc/caddy/Caddyfile
|
添加以下配置(替换 xxx.cn 为您的实际域名):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| www.xxx.cn { reverse_proxy 127.0.0.1:1313 }
baikel.xxx.cn { reverse_proxy https://baikelwang.github.io { header_up Host {upstream_hostport} header_up X-Forwarded-For {remote_host} } redir https://{host}{uri} permanent }
|
步骤 2:保存并应用配置
1 2 3
| sudo caddy validate --config /etc/caddy/Caddyfile sudo systemctl reload caddy
|
步骤 3:DNS 配置(关键)
- 在域名控制台检查 CNAME 记录:
1 2 3 4
| 类型: CNAME 名称: baikel 值: baikelwang.github.io TTL: 自动
|
- 验证 DNS 解析:
1 2
| dig baikel.xxx.cn +short
|
步骤 4:GitHub Pages 设置
- 在 GitHub 仓库设置中添加自定义域名:
1
| Settings → Pages → Custom domain → 输入 "baikel.xxx.cn"
|
- 勾选 “Enforce HTTPS” 选项
步骤 5:验证配置
1 2 3 4 5 6
| sudo journalctl -u caddy -f --since "5 minutes ago"
curl -I https://baikel.xxx.cn
|
步骤 6:在 hexo 中配置 cname
1 2 3 4
| cd /path/to/your/hexo/project
echo "baikel.iamlgao.cn" > source/CNAME
|
高级配置选项
1. 添加 HSTS 安全头
1 2 3 4
| baikel.xxx.cn { header Strict-Transport-Security "max-age=31536000;" }
|
2. 缓存优化(提升速度)
1 2 3 4 5 6 7 8 9 10 11 12 13
| baikel.xxx.cn { reverse_proxy https://baikelwang.github.io { header_up Host {upstream_hostport} @static { path *.css *.js *.jpg *.png *.gif } reverse_proxy_cache @static { duration 24h } } }
|
3. 备用方案(如果反向代理有问题)
1 2 3 4 5 6 7 8
| baikel.xxx.cn { redir https://baikelwang.github.io{uri} permanent rewrite * /{path}?{query} redir https://baikelwang.github.io{uri} permanent }
|
常见问题解决
问题:访问显示 404 或 GitHub 404 页面
- 检查 GitHub 仓库设置中是否添加了
baikel.xxx.cn
- 在仓库根目录添加
CNAME 文件(内容为 baikel.xxx.cn)
问题:SSL 证书错误
1 2 3
| sudo rm -rf /var/lib/caddy/.local/share/caddy/certificates/acme-v02.api.letsencrypt.org-directory/baikel.xxx.cn* sudo systemctl restart caddy
|
问题:内容更新延迟
- GitHub Pages 有 1-10 分钟的缓存延迟
- 在 Caddy 配置中添加缓存清除机制:
1
| header Cache-Control "public, max-age=300"
|
完成以上步骤后,baikel.xxx.cn 将作为子域名指向GitHub Pages 网站,并通过 Caddy 自动获得 SSL 证书。整个过程通常需要 5-30 分钟生效(主要取决于 DNS 传播时间)。