Node.js作为应用程序容器

时间:2011-08-29 22:04:19

标签: node.js

Apache和Node.js有一些共同之处。我使用Node.js越多,我就越喜欢Node.js;同样,我使用Apache越多,我就越喜欢Node.js。

Apache的一个好处是,它可以通过同一个端口做很多事情。 PHP,Python,Perl,不同的应用程序,不同的路径,整个magilla。 Node.js不这样做,它不应该,但我想做类似的事情。

我想给它一个URL前缀列表(或理想的regexp)和足够的信息,如果它收到匹配特定前缀的请求,它会将请求传递给运行指定脚本的从属实例(和它会启动这样一个实例,如果它还没有,并关闭它,这样做似乎是谨慎的)。基本上,我希望nodejs-proxycluster合作。有了它,我可以通过端口80在同一台机器上一起运行多个应用程序。

这看起来非常简单而且非常实用,当我遇到这种情况时,我就是自己写的,“这看起来非常简单且非常有用 - 可能有人已经写过了!”有什么建议吗?

4 个答案:

答案 0 :(得分:7)

Node.js没有将请求路由到不同应用程序的任何内置功能,但是这样的框架正在开发中。

Nodejitsu的Haibu浮现在脑海中 - 它管理每个应用程序的子进程,并使用node-http-proxy来路由请求。

答案 1 :(得分:1)

你可以看一下http://expressjs.com,我将其描述为“节点的sinatra”。它提供了基于URL /模式的整个路由选择。您可以将此与https://github.com/visionmedia/express-resource结合使用,以创建一种有点REST风格的资源方法。

答案 2 :(得分:0)

对我而言,听起来你正在寻找一个基于事件的HTTP代理(取代Apache) - 在这方面,nginx似乎是当前的山丘之王。

答案 3 :(得分:0)

使用dokku(基于Docker),它将生成您的应用并通过nginx提供反向代理。容器是隔离的,你可以选择buildpacks,你的部署有0个停机时间,通过git和auth通过ssh推送repos。

您可以按照这个简单guide on DigitalOcean关于如何部署Node.js应用程序,或者仅仅watch the guide来自该人。