单个域上的多个Heroku应用程序

时间:2013-10-01 14:41:52

标签: ruby-on-rails heroku

我很确定答案是“不可能”,但我想我最后一次检查:

我正在将一些Rails应用程序迁移到Heroku。现在,它们的组织方式是URL:

到目前为止我读到的所有内容都说Heroku上不可能:每个应用程序必须拥有自己的子域名(例如site1.example.com,site2.example.com)。 / p>

我的客户端不想更改URL结构(实际上可能存在一些争论;我已经阅读了几个说道路径与子域更适合SEO的来源。)

我是否认为Heroku上可能

3 个答案:

答案 0 :(得分:2)

使用机架反向代理可以使用Heroku和Rails。我目前正在分别在/ blog和/ kb上运行Wordpress博客和知识库。出于搜索引擎优化的目的,我不想在子域名上使用它们。

Rails配置

添加到Gemfile:

gem "rack-reverse-proxy", :require => "rack/reverse_proxy"

现在我们希望将/ blog和/ blog /从Rails应用程序定向到Wordpress实例。

在运行应用程序之前将其添加到您的config.ru:

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

在config / routes.rb中添加路由:

match "/blog" => redirect("/blog/"), via: :all

原文参考:http://rywalker.com/setting-up-a-wordpress-blog-on-heroku-as-a-subdirectory-of-a-rails-app-also-hosted-on-heroku

答案 1 :(得分:1)

我可能迟到了派对,但 可能。简短版how we did it at Pilot

我们有一个运行HAProxy的附加实例。它负责根据URL将请求路由到相应的Heroku应用程序。 ✌️

答案 2 :(得分:0)

最好的办法是将Rails应用程序转换为Rails引擎:

http://pivotallabs.com/migrating-from-a-single-rails-app-to-a-suite-of-rails-engines/

然后使用您描述的URL安装每个引擎。

当然,如果您的应用程序非常庞大且复杂,这可能会非常棘手。