3

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

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

我意识到最好的长期解决方案是以像 Toto 或 Jekyll 这样的 Rails 格式重做博客。但在短期内,继续托管 WP 博客的最佳方式是什么?客户不希望博客位于子域上,而是出于 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)站点并使用某种重写规则,所以它看起来不是子域。

这些方法中的任何一种都是可取的,还是有另一种更容易让我错过的方法?

4

3 回答 3

1

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

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

可悲的是,这是您作为顾问需要深入研究的地方,并与您的客户对技术限制保持严厉。

您的客户为什么要迁移到 Heroku?是否有更大的目标可以通过不同的托管来实现,您可以控制前端并可以混合不同的后端?

于 2011-02-27T18:01:19.397 回答
1

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

从 SEO 的角度来看,这将是最佳的,但需要一些 DNS 知识。

于 2011-11-30T12:08:56.053 回答
1

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

https://github.com/jaswope/rack-reverse-proxy

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

use Rack::ReverseProxy do
  reverse_proxy(/^\/blog(\/.*)$/,
    'http://<app-name>.herokuapp.com$1',
    opts = {:preserve_host => true})
end
于 2013-06-24T15:51:50.427 回答