在阿里云ECS部署Node.js应用遇浏览器连接超时问题排查求助
我来帮你梳理下接下来需要重点排查的几个方向,毕竟服务器本地curl能正常响应,但外部浏览器访问超时,核心问题基本集中在网络连通性或防火墙规则层面:
阿里云ECS安全组规则检查
这是最常见的原因!阿里云ECS的安全组相当于服务器的第一道防火墙,必须确保80端口的入方向规则是开放的。登录阿里云控制台,找到你的ECS实例,进入安全组配置页面,检查入方向是否添加了允许0.0.0.0/0(或指定你需要访问的IP段)访问TCP 80端口的规则。如果没有,立即添加并生效。服务器本地防火墙验证
即使安全组开了端口,服务器本地的防火墙(比如iptables或firewalld)也可能拦截80端口的外部请求:- 对于
firewalld,执行命令查看已开放端口:firewall-cmd --list-ports,如果看不到80/tcp,就添加规则:firewall-cmd --add-port=80/tcp --permanent,然后重启防火墙:firewall-cmd --reload。 - 对于
iptables,执行iptables -L查看规则,确认是否有允许80端口入站的规则,没有的话添加:iptables -A INPUT -p tcp --dport 80 -j ACCEPT,并保存规则(不同系统保存命令不同,比如service iptables save)。
- 对于
域名解析正确性验证
确认你的mydomain.com是否正确解析到了ECS的公网IP。在本地电脑执行nslookup mydomain.com或ping mydomain.com,查看返回的IP地址是否和ECS实例的公网IP一致。如果解析错误,浏览器会请求到错误的服务器,自然超时。Node.js监听地址确认(备选排查)
虽然你本地curl能正常访问,但可以确认下Node.js应用的监听地址:当前你设置的是localhost:8080(即仅监听127.0.0.1),Nginx在本地代理没问题,但如果后续有其他配置变动,也可以尝试改为监听0.0.0.0:8080(允许所有网卡访问),不过这个大概率不是当前问题的原因。Nginx运行状态与日志排查
检查Nginx服务是否正常运行:systemctl status nginx,如果服务未启动,执行systemctl start nginx启动。同时查看Nginx的错误日志(默认路径/var/log/nginx/error.log),看看是否有代理过程中的异常信息,比如连接被拒绝、权限问题等,日志往往能给出关键线索。本地网络环境排查
尝试切换到其他网络(比如手机热点)访问你的域名,或者在本地执行telnet 你的ECS公网IP 80,如果telnet无法连接,说明你的本地网络可能屏蔽了80端口,或者运营商层面有拦截。
内容的提问来源于stack exchange,提问作者John Smith




