你用nginx直接expression节点应用程序有什么好处?

我目前正在使用express来托pipe我的节点应用程序(在一个简单的代理将它们closures之后)

var httpProxy = require('http-proxy'); var http = require('http'); var express = require('express'); httpProxy.createServer(function (req, res, proxy) { var nodeVhosts = ["www.site.com"] var host = req.headers['host']; var port = nodeVhosts.indexOf(host) > -1 ? 8080 //must be a node vhost so pass it to :8080 : 9000; //must be an apache vhost so pass it to :9000 proxy.proxyRequest(req, res, {host: 'localhost', port: port}); }).listen(8000); var app = express(); var server = http.createServer(app); var site = require('./site/app.js').site app.use(express.vhost('www.site.com', site)); server.listen(8080); 

我正在寻找添加nginx作为本机的前端,并想看看我是否应该使用快递,一旦我做了开关。 在我目前的configuration中,我将使用nginx来replace决定哪个虚拟主机所属的http代理部分(node或apache)。 但是,如果我更进一步,并有节点的Web应用程序托pipeW / Nginx而不是expression…这是一个好主意或不?

另外 – 关于我使用节点networking应用程序的一点背景。 我打算做完整的socket.io的东西,并表示(目前的forms不传递升级请求,所以节点socket.io应用程序托pipe这种方式总是回落到长时间轮询伤心)

先谢谢你

查看Hipache :一个分布式的HTTP和websocket代理。 它使用http-proxy作为模块,基本上做了Ngnix工作。 我不是100%确定的性能,但DotCloud 最近从Nginx 切换 。