在AWS Linux上托管的NodeJs网站无法访问

问题描述:

我在AWS Red Hat Linux上托管了我的NodeJs网站,但它可从外部访问。 虽然当我从腻子运行我的nodejs服务器,它运行得很好。 enter image description here在AWS Linux上托管的NodeJs网站无法访问

以下是我在nodejs.j中使用express框架的服务器创建代码。

app.listen(80, function() { 
    console.log('Server starts on port: ' + 80); 
}); 

我已经打开AWS控制台的所有流量,也尝试了其他端口。

ps -ef | grep node says:- 

enter image description here

和app.log说: -

uncaughtException: Error: listen EADDRINUSE 
Server starts on port: 80 
+0

'ps -ef | grep节点? –

+0

@MukeshSharma:现在在问题中增加了它的输出。 –

+0

从截图中清除。你的'node'进程没有运行。我想一旦你关闭了shell,你的节点进程就会关闭。试试'nohup node app.js&' –

因为已经有一个使用port 80您的系统上,可能ApacheNginx一个应用程序,您收到此错误,因此您应该只使用另一个端口并配置您的Web服务器以将所有HTTP请求转发到您的端口或停止Web服务器,也可以使用端口80您需要使用sudo所以你的命令将是sudo node app.js。如果你想检查哪些应用程序正在port 80运行只需使用下面条命令:

sudo netstat -tupln | grep 80 

输出应该告诉你哪些进程使用的端口,你可以杀了它,如果你想

+0

无法正常工作,请参阅http://*.com/questions/40926433/aws-linux-ubuntu-hosted-application-is-not-accessible-from-public-ip –

+0

您指向的问题与其中的不同你问这是不可访问的。在这里你问为什么你得到这个错误** uncaughtException:错误:听EADDRINUSE 服务器端口启动:80 ** – AJS

app.listen(80,"0.0.0.0", function() { 
console.log('Server starts on port: ' + 80); 
});`` 

它应该工作总是确保您的应用程序可通过网络访问,例如“0.0.0.0”参数enter code here

+0

无法正常工作。见http://*.com/questions/40926433/aws-linux-ubuntu-hosted-application-is-not-accessible-from-public-ip –