我很确定答案是“不可能”,但我想我最后一次检查:
我正在将一些Rails应用程序迁移到Heroku。现在,它们的组织方式是URL:
到目前为止我读到的所有内容都说Heroku上不可能:每个应用程序必须拥有自己的子域名(例如site1.example.com,site2.example.com)。 / p>
我的客户端不想更改URL结构(实际上可能存在一些争论;我已经阅读了几个说道路径与子域更适合SEO的来源。)
我是否认为Heroku上可能
答案 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
答案 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安装每个引擎。
当然,如果您的应用程序非常庞大且复杂,这可能会非常棘手。