node.js - 无法从 Internet 访问 AWS 中使用端口 3000 的 NodeJs 应用程序

标签 node.js amazon-web-services express amazon-ec2

我正在使用免费层 AWS Linux 实例,我已经安装了 NodeJs 并启动了我的 Express JS 应用程序 (sudo node bin/www),我的应用程序在端口 3000 上运行。

当我 ssh 到实例并执行 cURL 时,我的应用程序正在响应,但不是来自使用实例公共(public) IP 的 Chrome。

我已在安全组中添加端口 80、22、3000,以便从任何地方访问该应用。 [附截图] 该实例正在N 中运行。弗吉尼亚地区

以下是我尝试使其发挥作用的案例:

  • 使用端口 3000 的公共(public) IP 启动了我的应用
  • 使用端口 3000 的私有(private) IP 启动了我的应用
  • 使用 0.0.0.0 和端口 3000 启动我的应用
  • 使用端口 3000 的 localhost 启动了我的应用

以上所有情况都失败了,当我 ssh 到实例并执行 cURL 时,我的应用程序正在响应。

有人可以给我更多关于这方面的见解吗? 我错过了任何东西。我已经被这个问题屏蔽了。

当我将端口设置为 80 时,我可以访问应用程序,但我需要使用端口 3000,因为我在端口 80 上运行前端框架。

使用 yum 在服务器上安装软件:

  • 百胜更新
  • gcc-c++ make
  • openssl-devel
  • 来自官网的nodejs
  • npm install -g npm//更新 npm
  • mongodb

AWS Security Group Screenshot

P.S:我已阅读有关无法从互联网访问该应用程序的所有 StackOverflow 问题,但就我而言,我的应用程序可以从端口 80 访问,而不是从 3000 访问。

最佳答案

您可能正在尝试从端口 3000 上的出站连接被阻止的网络访问您的应用程序。大多数企业网络只允许某些特定类型的流量离开网络,通常是 http(s) 等。 尝试从另一个网络或不同区域内的 ec2 主机进行测试。

关于node.js - 无法从 Internet 访问 AWS 中使用端口 3000 的 NodeJs 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45629800/

相关文章:

javascript - 这个接受 Express 中的 RequestHandler 的函数是如何工作的?

java - 使用 Elastic Beanstalk,我能否以编程方式确定我是否在领导节点上?

node.js - 由于 macOS Big Sur 升级,无法再安装 npm 包

javascript - 将参数函数Node.js从一个js传递到另一个

python - S3响应错误: 403 Forbidden using boto

javascript - node.js:从其他文件访问导出的函数

javascript - 找不到模块 "serve-static"| JavaScript | Node js

node.js - 使用 NodeJs Express 运行我的服务器时出错

android - 在android上解析socket.io数据。 (Gottox Socket.IO)

amazon-web-services - 是否可以将 Redshift 集群恢复到另一个 VPC?