我的目标是在端口80上运行Node.js。这是因为我发现node.js被阻止来自某些不允许来自任何其他端口的流量的网络。如何在端口80上运行Node.js?
看来最好的方法是通过Node.js代理Apache。我曾尝试使用node-http-proxy来做到这一点,但我没有任何运气。
我使用的代码是在这里:
var util = require('util'),
http = require('http'),
httpProxy = require('http-proxy');
httpProxy.createServer(9000, 'localhost').listen(80);
http.createServer(function (req, res) {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.write('request successfully proxied to: ' + req.url + '\n' + JSON.stringify(req.headers, true, 2));
res.end();
}).listen(9000);
但我不断收到错误“使用地址” 80端口。我必须做一些错误的。
如何使用node-http-proxy通过node.js代理Apache?这将使我能够在端口80上运行node.js吗?并且node-http-proxy是实现此目的的最佳方式吗?
谢谢。
@PaulM。谢谢。我如何去绑定辅助IP到端口80和node.js而不是Apache? – Kit 2011-05-24 10:46:50
与您的DNS有一样的东西像www.domain.com 1 ip和chat.domain.com其他ip。在apache中听第一个ip地址:Listen vvv.xxx.yyy.zzz:80。然后用node做.listen(80,chat.domain.com)。这是我正在使用的设置,我没有任何企业防火墙等问题。 – PaulM 2011-05-24 11:05:38
我不会推荐nginx的节点。 Nginx不支持HTTP 1.1,这意味着你将无法做一些WebSocket的东西。当你使用node.js时,我认为你会想用这个非常快的方法;) – 2011-05-24 11:51:54