如何为单个网站/项目运行多个Rails版本?

时间:2017-04-28 15:31:49

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-5

我继承了一个很好地“哼唱”的Rails 3.2制作环境。

客户现在想要做另一项重要工作,但我想在Rails 5中完成。旧网站和新项目的网址都是相同的。新项目将是可通过旧网站访问的附加功能。

当我通过Rails 5开发和交付新作品时,是否有人知道保持旧网站运行的方法?最终如果这一切都有效,那么我有机会将旧站点迁移到Rails 5.但是目前我需要从同一站点提供Rails 3.2和Rails 5。

2 个答案:

答案 0 :(得分:1)

可以使用反向代理执行您所描述的操作,例如: nginx,配置为基于同一主机上的不同路径从不同的Web服务器提供服务。 This answer有一些关于如何做到这一点的细节。我们需要知道您的网站是如何托管的,以便详细说明如何做到这一点。

但是,当您开始分离您可能没有考虑过的应用时,还会出现其他问题。例如,如果您的网站允许用户登录,您是否希望他们在访问新网站时仍然登录?要透明地执行此操作,需要共享会话cookie,this post稍微描述一下(您需要为两个应用程序使用相同的密钥,或使用像Memcached这样的远程会话存储)。不过,我不确定它是否能在Rails 3.2和5之间共享时正常工作。

最后要说明的是,将单片应用程序分解为分布式系统绝不是轻易做出的决定。简单地将时间投入到3.2升级中,可能最终减少工作量,减少整体架构开销。 4.0 - > 4.2 - > 5.0。

答案 1 :(得分:0)

就个人而言,我不会触及那个旧的应用程序及其服务器,特别是如果客户感到满意的话。将新应用程序部署到新服务器或像heroku这样的容器服务是您应该考虑的事情。