服务突然访问不了时,最容易走的弯路是直接重装。更有效的方法是从外到内缩小范围:机器是否在线、资源是否充足、进程是否运行、端口是否监听,最后才是应用配置。

先记录现象

记下失败的地址、发生时间和报错。连接超时、连接被拒绝、HTTP 502 是不同的问题:超时可能涉及网络或防火墙;拒绝连接通常表示目标可达,但端口没有服务;502 则要继续检查反向代理与上游。

检查资源

用 uptime 看负载,用 free -h 看内存,用 df -h 看磁盘。负载高不一定代表 CPU 忙,也可能是在等待磁盘。磁盘满会使数据库写入、日志和证书续期同时失败。

查看服务和日志

systemd 服务可用 systemctl status 服务名 查看状态,再用 journalctl -u 服务名 --since "30 min ago" 查看近期日志。容器则检查 docker ps -a 和 docker logs --tail 100 容器名。重点找第一次失败,而不是反复出现的后续错误。

确认监听地址

ss -lntp 能看到 TCP 监听端口。监听在 127.0.0.1 的服务通常只能从本机连接;监听在 0.0.0.0 代表全部 IPv4 接口,但是否公网可达还受云安全组和系统防火墙影响。

分别测试上游与入口

先在机器上请求应用端口,再请求域名入口。如果应用返回正常而域名返回 502,排查代理配置;如果上游本身失败,先修应用。一次只修改一个变量,才能知道哪个动作真正解决了问题。

重启可以缓解部分故障,但保存日志、找到原因并补上监控,才是下一次少走弯路的方法。