同一域名指向不同服务器上的Rails与WordPress站点实现方案咨询
同一域名下同时部署Rails(Heroku)和WordPress(Godaddy)的实现方案
完全可以实现你的需求,核心思路是通过基于路径的反向代理,将域名下的特定子路径路由到WordPress站点,其余路径默认指向Rails应用,无需修改两个应用的核心代码,也不用依赖子域名。以下是具体操作步骤:
1. 配置域名解析与反向代理
DNS本身无法按路径区分流量,必须通过反向代理中间层做路由分发:
- 将你的主域名(如
example.com)的DNS记录指向反向代理服务的入口地址 - 在反向代理中配置路由规则:
- 所有非
/blog开头的请求(如/、/products)转发到Heroku上的Rails应用地址(如yourapp.herokuapp.com) - 所有
/blog开头的请求(如/blog/post-1)转发到Godaddy的WordPress站点地址,同时配置路径重写:将/blog/*的前缀去掉,转发为WordPress的/*路径(确保WordPress能正确识别请求)
- 所有非
2. 调整WordPress的站点配置
登录Godaddy的WordPress后台,进入「设置→常规」:
- 将「WordPress地址(URL)」设为Godaddy分配给你的WordPress原始访问地址(如
your-wordpress-site.godaddysites.com) - 将「站点地址(URL)」设为主域名的
/blog路径(如https://example.com/blog) - 保存设置后,WordPress生成的所有链接、资源路径都会自动适配主域名的
/blog前缀,确保前端跳转和资源加载正常。
3. 适配Rails应用的路由
- 检查Rails的路由配置,确保没有使用
/blog作为业务路径(如果已存在,需将其修改为其他名称,如/news),避免路径冲突 - 在Heroku后台的「设置→域名」中添加你的主域名
example.com,确保Rails应用能正确接收主域名的请求
4. 可选:自建Heroku反向代理应用
如果不想依赖第三方反向代理服务,可以在Heroku上部署一个轻量的代理应用(比如用Nginx或Node.js实现),作为流量入口:
- 代理应用的核心逻辑是根据请求路径转发:非
/blog路径转发到Rails应用,/blog路径转发到WordPress - 将主域名指向这个代理应用的Heroku地址,实现完全可控的路由分发
5. 测试验证
- 访问
https://example.com,确认加载Rails应用的首页 - 访问
https://example.com/blog,确认加载WordPress的首页,点击文章、分类等链接,验证URL格式和内容加载正常 - 测试Rails应用的各个功能页面,确保业务逻辑不受影响
注意事项
- 确保所有环节都配置了对应域名的SSL证书,避免浏览器出现安全警告
- 如果使用第三方反向代理,需确认其支持路径重写和HTTPS转发功能
内容的提问来源于stack exchange,提问作者leonel
相关产品推荐
相关产品推荐

