我正在使用免费层 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
P.S:我已阅读有关无法从互联网访问该应用程序的所有 StackOverflow 问题,但就我而言,我的应用程序可以从端口 80
访问,而不是从 3000
访问。
最佳答案
您可能正在尝试从端口 3000 上的出站连接被阻止的网络访问您的应用程序。大多数企业网络只允许某些特定类型的流量离开网络,通常是 http(s) 等。 尝试从另一个网络或不同区域内的 ec2 主机进行测试。
关于node.js - 无法从 Internet 访问 AWS 中使用端口 3000 的 NodeJs 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45629800/