【问题标题】:Would it make sense to make a web server/app server for Rails in NodeJS在 NodeJS 中为 Rails 制作 Web 服务器/应用程序服务器是否有意义
【发布时间】:2011-10-02 19:12:26
【问题描述】:

好的,NodeJS 是最近的热门话题,因为它以非阻塞异步方式处理事情。因此,它非常适合作为某种服务器,同时处理来自多个客户端的请求。所以我的问题是,从技术角度来看,编写一个通用的 Rails 应用程序和 Web 服务器以供生产使用是否有意义。需要明确的是,它将取代(例如)Apache 和 Phusion Passenger。这种设置在理论上不会更快地处理请求和响应吗?

【问题讨论】:

  • “非阻塞/异步”并不自动意味着“更快”。
  • @Matt:感谢您减少炒作(冒着成为异端的风险)。
  • @mu *shrug* 作为一个 Java 人,这就是为我做的:news.ycombinator.com/item?id=1551776

标签: ruby-on-rails node.js webserver application-server


【解决方案1】:

您可以使用基于事件的NginxLighttpdMongrel2,并且可能仍然保留您的Ruby on Rails。据我所知,所有这三个都使用事件 I/O,并且不会在每个新连接上构建和拆除线程或分叉。这样,您可以保留 Ruby on Rails。如果您需要任何 AJAX 的双向通信,那么我建议放置一个 Node.JS Socket.IO 服务器。

【讨论】:

    【解决方案2】:

    Apache 在处理并发连接方面效率很低。如果您有大量流量场景,那么节点在处理连接方面应该比 Apache 做得更好。然而,node 本身不仅仅是一个 http 服务器,它可以编写全新的 MVC 框架,与 Rails 不同,用于构建 Web 应用程序。在 node 中编写一个 http 服务器来替换 Apache / Phusion Passenger 可能是不明智的。 Node 还很年轻,还没有发布 1.0 版本。

    【讨论】: