为什么你需要带乘客的nginx用于RoR?

hac*_*r15 5 ruby-on-rails passenger nginx

我知道nginx是一个Web服务器,而passenger是一个app服务器.我们可以跑了

passenger start
Run Code Online (Sandbox Code Playgroud)

启动我们的rails应用程序,一切似乎都运行正常.但是有很多关于将nginx设置为反向代理的帖子.

如果这方面的专家分解每个组件,并解释为什么需要nginx和乘客,以及每个组件的作用,将会有所帮助.


值得思考的问题:- 围绕nginx包裹乘客的主要目的是什么,而不是单独运行乘客?
- 单独运行乘客是不是很糟糕?
- 运行"乘客启动"启动自己的nginx服务器吗?

Hon*_*gli 5

所有问题都在官方的Passenger文档中得到解答.


dim*_*ura 0

我不是 Web 服务器方面的专家,尽管我总是在 Apache/Nginx 后面使用 Passenger 部署我的 Rails 应用程序。

让我列出这种方法的几个优点(可能有更多选择和这样做的原因):

  1. Passenger 是一个独立的服务器。这意味着,它被设计为在单台机器上运行。您无法像使用 Apache/Nginx 那样平衡两个乘客服务器的工作。
  2. 您只能在给定机器上使用 Passenger 运行单个应用程序。
  3. 静态资产管理可以使用 Nginx 完成,而不会影响乘客。
  4. 攻击者很容易通过发送过多的请求来使您的网站失去响应。Nginx/Apache 使您能够阻止某些IP内容。

  • 旅客作者在此。1)这不是真的,您可以在 Passenger 实例之间进行负载平衡。使用任何标准 HTTP 负载均衡器。2)这也不是真的,Passenger 是明确为多租户设计的。事实上,它是*唯一*支持多租户的 Ruby 应用程序服务器。3) Passenger 已经配置了 Nginx,以便直接从 Nginx 提供静态资源,而无需访问 Passenger 或应用程序。 (4认同)