乘客是不是等同于 Heroku,为啥我仍然需要两者之一?

Posted

技术标签:

【中文标题】乘客是不是等同于 Heroku,为啥我仍然需要两者之一?【英文标题】:Is Passenger equivalent to Heroku and why do I need either anyway?乘客是否等同于 Heroku,为什么我仍然需要两者之一? 【发布时间】:2016-03-12 11:22:49 【问题描述】:

在过去的几年里,我一直在将 Dreamhost 用于我的个人网站,并希望开始在那里托管 ROR 或 Sinatra 网站。 ROR 的 Dreamhost howto 说它使用Passenger (phusionpassenger.com) 进行Rails 托管。这相当于 Heroku 吗?

我也不完全清楚 Heroku 究竟是什么。如果应用程序在本地运行,这是否意味着它也将在 Web 服务器上运行?有什么不同需要像 Heroku 这样的特殊服务?

ETA:我发现并正在阅读Why do people use Heroku when AWS is present? What distinguishes Heroku from AWS?,它回答了一些问题,但不是全部。我只需要一个非常基本的答案,说明我为什么需要这项服务用于业余爱好网站。

【问题讨论】:

【参考方案1】:

不,Passenger 是一个多线程服务器环境,类似于 Unicorn 或 Puma。

所有这些信息都非常容易通过一次 Google 搜索找到,但无论如何都在这里:

Heroku 是一个基于云的应用程序平台,它使部署、服务器管理和持续维护变得超级简单: https://www.heroku.com/about

Passenger 将帮助您实现可扩展性,因为您使用的每个 Heroku dyno 都将使用一个 Passenger 实例: https://www.stormconsultancy.co.uk/blog/development/how-to-get-more-bang-for-your-heroku-buck-while-making-your-rails-site-super-snappy-redux/

基本上,Heroku 是一个平台,您可以在其上部署、扩展和管理 Web 应用程序。每当您将应用程序部署到 Heroku 时,您都会使用完整的 Web 服务器(请参阅:Puma、Thin、Unicorn、Passenger 等)。这些 Web 服务器提供多线程功能来处理到达您的应用程序的流量。

此外,Heroku 使用 dynos(运行用户指定命令的轻量级 Linux 容器。想象一下您的应用程序及其依赖项的真空密封版本)。更多的测功机为您提供更多的并发性、更多的故障冗余等。

Passenger 是一个著名的多线程 Web 服务器,可与 Heroku 或任何其他应用程序管理平台一起使用。

希望这会有所帮助。

【讨论】:

谢谢。我在发布之前做了谷歌,已经找到了你的第一个答案。 Heroku 页面的问题在于它假设我已经知道很多我不知道的东西。所以我仍然不明白 Heroku 的用途或为什么需要它。您告诉我它们是不同的服务,这很重要且很有帮助。 我已经更新了我的答案,为您提供更多细节:)【参考方案2】:

如果您已经是 DreamHost 客户并且您的网站很小,那么您在做出决定时也许还应该考虑成本。简单地说,Heroku 是一个可以上传 Ruby 代码并运行的地方。 DreamHost 会为您安装和运行Passenger,因此您只需要关心您的代码(在某种程度上......)从这个角度来看,这两个系统是相似的。

如果您将相同的代码放在 DreamHost ROR/Passenger 环境中,它应该像在 Heroku dyno 中一样运行......但通常需要注意共享主机和 VPS 产品。

【讨论】:

以上是关于乘客是不是等同于 Heroku,为啥我仍然需要两者之一?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的 heroku 工人 dyno 不工作?

为啥heroku无法在项目上编译构建?

Heroku 为啥使用 Postgresql?

为啥我的 Heroku discord bot 没有上线?

Heroku SSL 添加但访问域仍然显示连接不是私有的

我如何准备要部署到heroku的CRA应用程序,仍然需要像全栈CRA应用程序一样构建吗?