使用nodejs web服务器来提供完整的rails应用程序

我和4位同事将开始一个大学项目,并决定使用Ruby on Rails,因为它有许多我们需要和喜欢的库。

该项目是一个研究人员的网站,可以让他们创建账户,登录/注销,发布研究成果。

该项目必须具有散列标签,并且研究可以连接在一起,访问者必须能够通过标签进行搜索并查看相关研究,我们可以使用知识库向人们提供这些知识。

因此,对于我的问题:性能,项目文件中提到我们应该有良好的表现。

我听说过Rails没有很好的性能的声誉(不知道这是否改变了,但是...)。

我正在考虑使用nodejs,因为它非常快速且可扩展,但不幸的是我没有找到我们需要的所有库。

我搜索并搜索了一种使用nodejs web服务器(expressjs或其他)的方法,仅用于使用Rails来提供和编写整个应用程序,但我没有找到在nodejs上执行ruby的方法。

那么如何做到这一点? 如果我使用Nginx作为代理服务器,那么我可以使用nodejs作为主服务器(以及如果我可以如何操作?)。

提前致谢。

PS

我们想提一下,我们将使用最新版本的Ruby,RoR。

至于Node.js,只要达到目标,我们并不介意使用5或4。


扩展Web应用程序更多的是关于良好的体系结构最佳实践,而不是关于Web框架/语言。

RoR在Twitter决定转用Scala之初就表现出了糟糕的声誉。 实际上,他们只是在Scala后端切换了一些重型进程,并利用RoR的其他功能。

有可能你的应用程序不会像Twitter一样扩展。 即使你打算去,你也应该使用类似他们的方法:

  • 做一些人们最喜欢使用的东西。 RoR可帮助您快速建立原型。
  • 如果性能成为问题,那么找到瓶颈。 机会是RoR不会是这里的问题。 很可能你需要改进其他的东西,比如某些Web服务器配置,或者数据库需要索引,或者你的服务器资源太少。
  • 如果您认为RoR IS实际上是问题,那么您可能做出了如此有价值的事情,以至于研究人员社区将想要为您解决问题......
  • 除了推特之外,其他使用RoR的大型网站还有Github,AirBnB,Basecamp,Hulu,Shopify等等。

    结论:所以我的观点是,RoR表现的不错,以至于你不必担心性能。 使用它,因为它是有趣的写和拥有你需要的库,并担心缩放时,如果它需要。

    另外,很抱歉让你失望,但在NodeJ上运行RoR是不可能的,NodeJs是服务器端Javascript,所以它不能运行Ruby。 或者,您可以使用JRuby在JVM上运行RoR,但这是另一回事。 如果我是你,我会坚持使用像Passenger和Unicorn这样的Ruby web服务器。


    我建议你使用Nginx作为负载平衡器,并为你的Rails应用程序缓存,否则请用JavaScript编写你的应用程序,我的意见。 NodeJS是一个服务器端JavaScript,它不可能在节点上运行ruby应用程序。 Ruby比NodeJS慢,只是用循环和字符串做一个简单的测试,你会看到一个主要的区别。

    在10 mio迭代的Javascrip中,您将在一秒钟之内看到结果,有时甚至会有近半秒的时间。

    var str = 'blab lablaejd ksjdhsdlnsdsdksdkfnvdfvjeefvkdnfvkjfvidfvjndfvnfvfvovhelloasdkjfiweefsdffh';
        var newstring;
        var start, end,i;
        start = new Date().getTime() / 1000;
        for(i = 0; i<10000000; i++) {
          var index = str.indexOf("hello");
          newstring = str.slice(index, index+5);
        }
        console.log(newstring);
        end = new Date().getTime() / 1000;
        console.log(end-start);
        document.getElementById("str").innerHTML = newstring;
        document.getElementById("time").innerHTML =  end-start;
    <p id="str"></p>
    <p id="time"></p>
    链接地址: http://www.djcxy.com/p/64669.html

    上一篇: use a nodejs web server to serve a full rails application

    下一篇: Installed NGINX but rails app still uses WEBrick