You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在已有A记录的apex域名上同时配置GitHub Pages与本地服务?

解决方法

针对你的需求,有两种可靠的方案可以实现主域名访问GitHub Pages(Homer页面),同时子域名正常访问Jellyfin:

方案1:调整DNS记录,拆分主域名与子域名解析

  1. 修改Jellyfin子域名的DNS记录:
    • 删除原有的CNAME: jellyfin -> domain.tk记录
    • 添加新的A记录: jellyfin.domain.tk -> 你的服务器公网IP
  2. 配置主域名指向GitHub Pages:
    • 删除原有的A记录: domain.tk -> 服务器公网IP
    • 为domain.tk添加GitHub Pages要求的解析记录:
      • 若用A记录:添加GitHub Pages的官方IP(如185.199.108.153、185.199.109.153等)
      • 若用CNAME记录:直接添加CNAME: domain.tk -> user.github.io(Cloudflare支持CNAME Flattening,会自动处理 apex 域名的CNAME解析限制)

优点

  • 架构清晰,主域名和子域名解析完全独立,不依赖服务器代理
  • 无需修改Caddy配置,维护成本低

方案2:通过Caddy反向代理主域名到GitHub Pages

保留现有DNS记录(主域名A记录指向服务器,子域名CNAME指向主域名),修改Caddy配置实现转发:

# 主域名转发到GitHub Pages的Homer页面
domain.tk {
    reverse_proxy https://user.github.io {
        # 必须设置Host头,否则GitHub Pages无法正确识别请求
        header_up Host user.github.io
    }
    tls { cloudflare }
}

# 子域名正常反向代理到Jellyfin
jf.domain.tk {
    reverse_proxy localhost:8096
    tls { cloudflare }
}

优点

  • 无需修改任何DNS记录,快速生效
  • 所有流量先经过你的服务器,可灵活添加额外的访问控制或缓存规则

注意事项

  • 确保你的服务器能够正常访问user.github.io
  • 若GitHub Pages启用了HTTPS,Caddy的反向代理配置中要使用https://协议

内容的提问来源于stack exchange,提问作者OhItsTom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 07:17:21