编程语言
首页 > 编程语言> > node.js-AWS上的节点EADDRINUSE(与端口无关)

node.js-AWS上的节点EADDRINUSE(与端口无关)

作者:互联网

我感到非常沮丧……我无法在线找到任何信息来帮助我.

我的设置是:

> AWS EC2实例
> Nginx指向127.0.0.1:3000
>节点JS v0.10.32
> mongoDB进程作为守护程序运行

我尝试使用我的公共DNS /公共IP并重新启动nginx,我尝试使用端口80、8000、1337等…我试图删除Nginx. ps aux | grep:3000不返回任何内容. ps aux | grep:80不返回任何内容.等等…

以下是相关代码:

https.createServer(options, app).listen(app.get('port'), '127.0.0.1', function() {
    console.log('Express server listening on port ' + app.get('port'));
});
http.createServer(function(req, res) {
    res.writeHead(301, { "Location": "https://" + req.headers['host'] + req.url });
  res.end();
}).listen(3000);

无论我使用哪个端口,sudo node app.js和node app.js都会收到相同的错误:

events.js:72
        throw er; // Unhandled 'error' event
              ^
Error: listen EADDRINUSE
    at errnoException (net.js:904:11)
    at Server._listen2 (net.js:1042:14)
    at listen (net.js:1064:10)
    at net.js:1146:9
    at dns.js:72:18
    at process._tickCallback (node.js:419:13)
    at Function.Module.runMain (module.js:499:11)
    at startup (node.js:119:16)
    at node.js:906:3

我确实做到了这一点,但是我需要将流量重定向到端口443并使用https:

app.listen(3000, '127.0.0.1', function() {
    console.log('Express server listening on port ' + app.get('port'));
});

解决方法:

您可以使用netstat -tulpn | grep:XX,XX是您要检查的端口.

似乎您正在尝试在同一端口上同时启动http服务器和https服务器.删除http.createServer位,就可以了.

标签:nginx,node-js,amazon-web-services,amazon-ec2,port
来源: https://codeday.me/bug/20191121/2049871.html