需要在Heroku上链接WP Blog和Rails App

我有一个客户想要将他的Rails应用程序迁移到Heroku。 但是,客户端还有一个与他的域相关联的博客,该博客在WordPress上运行。 目前,WordPress博客与Rails应用程序一起快乐地运行,但是一旦我们迁移到Heroku,这显然是不可能的。

该应用的url类似于http://mydomain.com ,该博客的url类似于http:// mydomain / blog 。

我意识到最好的长期解决方案是以像Toto或Jekyll这样的Rails格式重做博客。 但是从短期来看,继续托管WP博客(或者某个地方)但使用Heroku来运行应用程序的最佳方式是什么? 客户端不希望博客位于子域,而是因为SEO原因而留在mydomain / blog,并且因为博客有流量。 我有两个想法:

  1. 在旧(非Heroku)服务器上使用rack_rewrite或refraction(或只是常规的旧301和Apache mod_rewrite)将主URL从旧站点重定向到Heroku。 在这种情况下,我可以让Wordpress博客快乐地运行。 我认为?? 如果我这样做,是否有理由选择其中一个选项(rack_rewrite,refraction或mod_rewrite)而不是其他选项?

  2. 切换DNS信息以指向Heroku站点,然后使用301重定向从博客到旧站点。 但是接下来我必须在子域上获取旧的(非Heroku)站点并使用某种重写规则,因此看起来它不是子域。

这些方法中的任何一种都是优选的,还是有另一种方法可以让我更容易丢失?

唯一可靠的长期/可扩展解决方案是将博客永久托管在子域或不同域上,并将重定向从mydomain.com/blog添加到新位置(即:blog.mydomain.com)。

您需要在mydomain.com上运行像Apache / nginx这样的前端的单个服务器来提供像Rails和Wordpress这样的混合后端,这在Heroku上是不可能的。

可悲的是,这是您需要深入了解顾问并对您的客户严格控制技术限制的地方。

为什么客户要迁移到Heroku? 有没有一个更大的目标,你可以通过控制前端的不同主机完成,并可以混合在不同的后端?

另一个解决方案是将heroku设置为http://app.example.com ,将Wordpress设置为http://example.com 。 您将Wordpress登陆页面放在根目录中,博客放在/ blog上。 当用户点击登录页面上的“登录”或“注册”时,它们会链接到heroku-app。

这在SEO方面是最佳的,但需要一些DNS知识。

温菲尔德的回答是不正确的。 您可以在机架服务器上运行反向代理(通过Heroku),以指向博客,无论它在哪里。

请参阅https://github.com/jaswope/rack-reverse-proxy

安装gem并根据文档设置应用程序后,您的./config.ru文件将具有以下内容:

 use Rack::ReverseProxy do reverse_proxy(/^\/blog(\/.*)$/, 'http://.herokuapp.com$1', opts = {:preserve_host => true}) end