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

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

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

  • http://example.com/site1 – 由app1提供服务
  • http://example.com/site2 – 由app2提供服务

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

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

我是否正确,这在Heroku上是不可能的?

Heroku和Rails使用Rack Reverse Proxy可以实现这一点。 我目前正在分别在/ 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

我可能迟到了派对,但这有可能的。 我们如何在Pilot上做到这一点的简短版本:

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

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

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

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

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