在 amazon ec2 的 80 端口上服务节点 Webapp
Serve node Webapp on port 80 in amazon ec2
我有一个侦听端口 80 的节点应用程序,我已将安全组设置为在端口 80 上打开。
但是,当我通过 public ip(http://xx.xxx.xx.xxx/) 在浏览器中访问我的 webapp 时,它没有显示。
可能是什么问题?
我已将此文档用作指南https://aws.amazon.com/premiumsupport/knowledge-center/connect-http-https-ec2/
当您的安全组已经允许流量时这意味着实例有问题。
调试此类问题的第一步是验证实例内部的应用程序状态。
- 对实例执行
ssh
并验证实例是否在本地主机上响应 curl localhost
- 检查是进程运行,如果你使用任何nodejs进程管理器,如pm2
pm2 list
或永远forever list
或ps -aux | grep node
- 验证端口
80
上的服务器 运行。
- 查看是否占用了端口
netstat -antu | grep LISTEN
简而言之,如果应用程序使用 curl localhost
在本地主机上响应,那么如评论中所述,实例位于私有子网中。
您可以查看此 article 以了解 public 和私有子网。
所以答案是,我的安全组很好。我的应用不是 运行 因为我没有正确设置环境变量。 sudo PORT=80 node server.js 是我需要的命令。
我有一个侦听端口 80 的节点应用程序,我已将安全组设置为在端口 80 上打开。
但是,当我通过 public ip(http://xx.xxx.xx.xxx/) 在浏览器中访问我的 webapp 时,它没有显示。
可能是什么问题?
我已将此文档用作指南https://aws.amazon.com/premiumsupport/knowledge-center/connect-http-https-ec2/
当您的安全组已经允许流量时这意味着实例有问题。
调试此类问题的第一步是验证实例内部的应用程序状态。
- 对实例执行
ssh
并验证实例是否在本地主机上响应curl localhost
- 检查是进程运行,如果你使用任何nodejs进程管理器,如pm2
pm2 list
或永远forever list
或ps -aux | grep node
- 验证端口
80
上的服务器 运行。 - 查看是否占用了端口
netstat -antu | grep LISTEN
简而言之,如果应用程序使用 curl localhost
在本地主机上响应,那么如评论中所述,实例位于私有子网中。
您可以查看此 article 以了解 public 和私有子网。
所以答案是,我的安全组很好。我的应用不是 运行 因为我没有正确设置环境变量。 sudo PORT=80 node server.js 是我需要的命令。