一尘不染

如何在端口80上运行Node.js?

node.js

我的目标是在端口80上运行Node.js。这是因为我发现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是实现此目标的最佳方法吗?

谢谢。


阅读 252

收藏
2020-07-07

共1个答案

一尘不染

您需要做的是为正在运行的服务器设置2 ip。Apache将1个IP绑定到端口80,然后node.js将另一个IP绑定到端口80。

使用节点及其监听指令具有2个值,例如。.listen(80,NODEJS_IP或DNS名称);

其他一些建议。

我不会将Apache与nodejs一起使用,因为这不会发生。因此,实际上不建议这样做。我实际上会考虑使用NGINX作为与Node更好的配对。

2020-07-07