问题出现得很突然,日志倒是留得挺全。服务器上调用第三方接口一直超时,同机房其他机器正常,本机访问网站也没有问题。
真正麻烦的地方在于,几个原因的现象几乎一样。出方向被安全组或者策略限制。还有一种是目标地址需要走代理,环境变量没有配置。
还有一种情况,并发太高把本地端口或者连接数打满。
测试到目标的连通性
curl -v --max-time 5 https://api.example.com
再往下检查代理环境变量
env | grep -i proxy
接着看本地连接数
ss -s
剩下的就是核对出方向规则与路由
ip route get 目标IP
改之前我把相关日志按时间截了一段存着,事后对时间线用得上。
别只看报错消失,验证要多做一步。接口调用恢复正常,超时消失,环境变量和路由都符合预期。
补一句。同一台机器能打开网页不代表能调接口,域名、端口、代理三者都可能不同,要按目标逐个验证。改动前把原配置备份一份,出问题能马上回滚,这比任何技巧都实用。