You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法通过HTTP访问AWS上的Express服务器问题求助

Troubleshooting Node.js/Express App Not Accessible on AWS EC2 Amazon Linux Instance

嘿,我来帮你一步步排查这个问题——本地跑的好好的Node/Express+Webpack应用,到EC2上启动成功却访问不了,大概率是网络绑定、安全规则或者环境配置的问题,咱们逐个排查:

1. 先确认安全组入站规则是否真的正确生效

你提到已经配置了入站规则,但细节很容易出错:

  • 确保规则里允许80端口(你的代码用的是port 80)的TCP流量,来源可以先临时设为0.0.0.0/0(所有IP)来测试,确认能访问后再缩小范围到指定IP
  • 检查这个安全组是否真的关联到了你的EC2实例——有时候创建实例时会不小心选错安全组,到EC2控制台的实例详情页就能看到关联的安全组

2. 关键:Node进程是否绑定了所有网卡(而不是仅localhost)

这是最常见的坑!你的代码里app.listen(port)没有指定绑定的IP,在有些环境下默认只会绑定localhost(127.0.0.1),这样只能在EC2实例内部访问,外部根本连不上。

修改你的server.js里的监听代码:

app.listen(port, '0.0.0.0', function(err){
  if(err){
    console.log(err);
  }else{
    console.log(`Server running on http://0.0.0.0:${port}`);
  }
});

0.0.0.0表示绑定所有可用网卡,这样外部才能通过实例的公网IP/DNS访问。修改后重启服务试试。

3. 检查EC2实例的本地防火墙规则

Amazon Linux默认可能有iptables或者firewalld在运行,可能会阻止80端口的流量:

  • 执行sudo iptables -L查看规则,确认没有拒绝80端口的入站流量
  • 如果用的是firewalld,执行sudo firewall-cmd --list-all,看public zone里是否包含http服务;如果没有,执行以下命令添加并重启防火墙:
    sudo firewall-cmd --add-service=http --permanent
    sudo firewall-cmd --reload
    

4. 在EC2实例内部验证应用是否正常响应

通过SSH登录实例后,用curl测试本地访问:

  • 执行curl http://localhost:80或者curl http://<你的实例私有IP>:80,看能不能返回index.html的内容
  • 如果curl能拿到内容,说明应用本身没问题,问题出在外部网络访问环节;如果curl也拿不到,那可能是应用的路径依赖有问题,比如../src/index.html的相对路径在EC2环境下找不到文件

5. 确认80端口是否被其他进程占用

有时候80端口会被系统自带的httpd或者其他服务占用,导致你的Node应用虽然启动了,但实际没抢到端口:

  • 执行以下命令查看80端口的占用情况:
    sudo lsof -i :80
    # 或者
    sudo netstat -tulpn | grep :80
    
  • 如果发现其他进程占用了80端口,可以停止那个进程(比如sudo systemctl stop httpd),或者把你的Node应用改成其他端口(比如3000),同时更新安全组入站规则允许3000端口

6. 检查应用的文件路径是否正确

你的代码里用了相对路径../src/index.html,在EC2实例上的目录结构可能和本地不一样:

  • 先确认文件存在:执行ls -la /home/ec2-user/testRep/src/,看index.html是否在这个目录下
  • 可以尝试把路径改成绝对路径,比如:
    res.sendFile(path.join('/home/ec2-user/testRep/src/index.html'));
    

避免相对路径在不同环境下的解析问题

按照这个顺序排查,应该能很快找到问题所在!

内容的提问来源于stack exchange,提问作者Snedden27

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:42:37