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

3
我们公司有一个项目,目前使用nginx作为反向代理服务器来提供静态内容和支持comet连接。我们使用长轮询连接来消除不断的刷新请求,并让用户立即获取更新。
现在,我知道已经有很多Node.js的代码编写了,但是否有一种解决方案可以让Node.js像nginx一样充当反向代理服务器来提供静态内容呢?或者也许有一个框架可以使用Node.js快速开发这样的层?
2个回答

3

dogproxy可能能够帮助您,即使不能成为完整的解决方案,也可能成为构建解决方案的基石。

然而,您可能需要重新考虑保留nginx来服务静态内容——它专门为这个特定任务设计和调整。使用node.js提供静态内容会增加很多开销——就像使用PHP提供静态文件一样。


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>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接