【问题标题】:Serve node Webapp on port 80 in amazon ec2在亚马逊 ec2 的 80 端口上服务节点 Webapp
【发布时间】:2019-10-22 20:58:27
【问题描述】:

我有一个节点应用程序正在侦听端口 80,我已将安全组设置为在端口 80 上打开。

但是,当我通过公共 ip(http://xx.xxx.xx.xxx/) 在浏览器中访问我的 webapp 时,它没有显示出来。

可能是什么问题?

我已将此文档用作指南 https://aws.amazon.com/premiumsupport/knowledge-center/connect-http-https-ec2/

【问题讨论】:

  • 检查您的子网是公共的还是私有的。

标签: node.js amazon-web-services amazon-ec2 aws-security-group


【解决方案1】:

当您的安全组已经允许流量时,这意味着实例有问题。

调试此类问题的第一步是验证实例内部的应用程序状态。

  • 对实例执行ssh 并验证实例是否在本地主机curl localhost 上响应
  • 检查进程是否正在运行,如果您使用任何 nodejs 进程管理器,如 pm2 pm2 list 或永远 forever listps -aux | grep node
  • 验证是在端口80 上运行的服务器。
  • 检查端口是否被占用netstat -antu | grep LISTEN

简而言之,如果应用程序在本地主机上使用curl localhost 进行响应,那么如评论中所述,则该实例位于私有子网中。

您可以查看此article 以了解公共子网和私有子网。

【讨论】:

  • 这为我指明了正确的方向。 curl localhost 连接失败。有关如何排除故障的任何建议?
  • 验证端口,端口 80 是否正确,以验证应用程序是否正在运行
【解决方案2】:

所以答案是,我的安全组很好。我的应用程序没有运行,因为我没有正确设置环境变量。 sudo PORT=80 node server.js 是我需要的命令。

【讨论】:

    猜你喜欢
    • 2011-06-27
    • 2012-09-09
    • 2013-10-20
    • 1970-01-01
    • 1970-01-01
    • 2012-09-10
    • 1970-01-01
    • 2013-09-28
    相关资源
    最近更新 更多