如何配置Google Domain实现mydomain.com/admin访问Heroku上的Node.js应用
解决mydomain.com/admin指向Heroku Node.js应用的配置方案
首先得明确核心问题:你的主域名mydomain.com已经绑定到WebFlow托管服务,DNS解析指向WebFlow的服务器,所以不能直接把主域名绑定到Heroku(这会覆盖WebFlow的解析,导致主站跳转到Heroku应用)。要实现mydomain.com/admin访问Heroku应用,需要通过路径路由或反向代理来实现,下面是几种可行的方案:
方案一:用Cloudflare做反向代理(最灵活的方案)
这个方案不需要改动WebFlow或Heroku的核心配置,通过Cloudflare的页面规则实现路径转发:
- 切换DNS服务器到Cloudflare:在Google Domains中,把域名的DNS服务器替换为Cloudflare提供的服务器地址(Cloudflare注册后会给出)。
- 保留WebFlow的解析:在Cloudflare的DNS面板中,添加主域名
mydomain.com的A/CNAME记录,指向WebFlow的官方解析地址(和你之前在Google Domains设置的一致)。 - 创建路径转发规则:
- 进入Cloudflare的「页面规则」面板,点击「创建页面规则」
- 匹配规则填:
mydomain.com/admin* - 选择「设置为」→「转发URL」,转发类型选「临时重定向(302)」或者「永久重定向(301)」(如果是永久功能选301)
- 目标URL填你的Heroku应用地址,比如
https://yourapp.herokuapp.com/$1($1会匹配/admin后面的所有路径,比如/admin/dashboard会转发到yourapp.herokuapp.com/dashboard) - 额外开启「缓存级别:忽略缓存」,避免动态的Node.js应用内容被Cloudflare缓存
方案二:子域名+WebFlow路径重定向(无需切换DNS)
如果你不想换DNS服务器,可以用子域名绑定Heroku,再通过WebFlow把/admin路径重定向到子域名:
- 绑定Heroku子域名:
- 登录Heroku控制台,进入你的Node.js应用,在「Settings」→「Domains」中添加子域名
admin.mydomain.com - 复制Heroku给出的目标域名(类似
yourapp.herokuapp.com或者Heroku的自定义域名目标) - 在Google Domains的DNS设置中,添加一条CNAME记录:主机名填
admin,指向刚才复制的Heroku目标域名
- 登录Heroku控制台,进入你的Node.js应用,在「Settings」→「Domains」中添加子域名
- WebFlow设置路径重定向:
- 打开WebFlow项目的「设置」→「路由」面板
- 添加自定义路由:源路径填
/admin,目标填https://admin.mydomain.com,重定向类型选301或302 - 保存并发布WebFlow项目
为什么你之前的尝试没成功?
- 直接绑定
mydomain.com到Heroku:这会让DNS解析优先指向Heroku,覆盖WebFlow的设置,所以主站会跳转到Heroku应用根页面,WebFlow网站自然无法访问。 - 子域名设置失败:大概率是DNS记录没配置正确(比如CNAME记录指向错误),或者Heroku的域名绑定没完成域名所有权验证(部分场景需要添加TXT记录验证)。
注意事项
- 如果用Cloudflare反向代理,确保你的Node.js应用信任Cloudflare的IP地址,避免出现IP限制或安全验证问题。
- 测试前记得清除浏览器缓存,或者用隐私窗口访问,避免旧的DNS缓存影响测试结果。
内容的提问来源于stack exchange,提问作者user2573690
相关产品推荐
相关产品推荐

