Node.js作为应用程序容器

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

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

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

这看起来相当简单而且非常有用,而且当我想到时,我正要自己写这个东西,“这看起来很容易,而且非常有用 – 可能有人已经写了! 有什么build议么?

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

想起Nodejitsu的Haibu,它为每个应用程序pipe理subprocess,并使用node-http-proxy来路由请求。

你可以看看http://expressjs.com ,我把它描述为一个“节点的sinatra”。 它给出了整个基于URL /模式的路由select。 你可以通过https://github.com/visionmedia/express-resource来创build一个REST风格的资源方法。

对我来说,这听起来像你正在寻找一个基于事件的HTTP代理(取代阿帕奇) – 在这方面, nginx似乎是当前的山丘之王。

使用dokku (基于Docker ),它将产生你的应用程序,并通过nginx提供反向代理。 容器是孤立的,你可以select构build包,你的部署有0停机时间,通过git和auth通过ssh推送回购。

您可以在DigitalOcean上关注如何部署您的Node.js应用程序,或只是从该人自己观看指南 。