我正在使用免费的 AWS Linux实例,我已经安装了NodeJ并启动了我的Express JS
应用(sudo node bin/www
)我的应用在端口3000上运行。
当我ssh到该实例并执行cURL时,我的应用正在响应,但不是来自使用Instance Public IP的Chrome。
我在Security Groups
添加了端口80,22,3000,可以随时随地访问该应用。 [附上ScreenShot]
该实例正在N. Virginia region
中运行。
以下是我试图让它发挥作用的案例:
Public IP
启动了我的应用
Private IP
启动了我的应用
0.0.0.0
启动了我的应用
localhost
启动了我的应用
以上所有情况都失败了,当我ssh到实例并执行cURL我的应用程序正在响应。
有人可以给我更多见解吗? or
我错过了什么。我被这个阻止了。
当我将端口设置为80
时,我可以访问应用程序,但我需要使用端口3000
,因为我在端口80
上运行前端框架。
使用yum在服务器上安装软件:
P.S:我已经阅读了有关无法通过互联网访问的应用程序的所有StackOverflow问题,但在我的情况下,我的应用程序可以从80
端口访问,而不是从3000
访问。
答案 0 :(得分:2)
可能是您尝试从端口3000上的出站连接被阻止的网络访问您的应用程序。大多数企业网络只允许某些特定类型的流量离开网络,通常是http(s)等。 尝试从其他网络或不同地区的ec2主机进行测试。
答案 1 :(得分:0)
你允许CORS /起源吗?
var allowedOrigins = [origionDomain]
res.header('Access-Control-Allow-Origin', allowedOrigins)
答案 2 :(得分:0)
为此浪费了3天。您需要禁用内部防火墙。我在centos 7上:
sudo systemctl禁用firewalld sudo systemctl停止firewalld