有没有一个解决方案让Node.js充当HTTP反向代理?

时间:2010-02-06 18:53:27

标签: nginx reverse-proxy node.js

我们公司有一个项目,现在使用nginx作为反向代理服务静态内容和支持彗星连接。我们使用长轮询连接来消除不断的刷新请求,并让用户立即获得更新。

现在,我知道已经为Node.js编写了很多代码,但有没有一种解决方案可以让Node.js作为nginx提供静态内容的反向代理?或者可能有一个框架允许使用Node.js快速开发这样的层?

2 个答案:

答案 0 :(得分:3)

dogproxy可能会帮助你,如果不是作为一个完整的解决方案,那么可能作为一个的构建块。

但是,您可能希望重新考虑保留nginx以提供静态内容 - 它是专门为此特定任务设计和调整的。使用node.js来提供静态内容会增加很多开销 - 就像使用PHP来提供静态文件一样。

答案 1 :(得分:2)

node-http-proxy听起来像你想要的

var sys = require('sys'),
  http = require('http'),
  httpProxy = require('http-proxy').httpProxy;

http.createServer(function (req, res){
    var proxy = new httpProxy;
    proxy.init(req, res);
    proxy.proxyRequest('localhost', '9000', req, res);
}).listen(8000);

http.createServer(function (req, res){
    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.write('request successfully proxied!' + '\n' + JSON.stringify(req.headers, true, 2));
    res.end();
}).listen(9000);</code></pre>