问题出现得很突然,日志倒是留得挺全。服务器上设了 HTTP_PROXY 指向公司代理,调内网 10.20.0.31 的推理服务全部 502,curl 报 Received HTTP code 502 from proxy after CONNECT,同一台机器访问外网接口却正常。

刚开始盯着「大小写两套代理变量同时存在且互相覆盖」,折腾了半个多小时,排掉了。

排查方向其实有限,先把可能性排一排。NO_PROXY 里没有内网网段,所有请求都交给了代理。少数情况下是代理走 CONNECT 时解析不了内网域名,只能返回 502。

少数情况下是容器里的环境变量被镜像写死,改宿主不生效。

上来先列出当前生效的所有代理变量

Get-ChildItem Env: | findstr -i proxy

然后把内网网段加进绕过列表

$env:NO_PROXY='10.0.0.0/8,127.0.0.1,localhost,.internal'

随后验证绕过代理后能否直连

curl --noproxy '*' -s -o /dev/null -w "%{http_code}\n" http://10.20.0.31:8000/v1/models

剩下的就是用全小写变量再确认一次

$env:no_proxy='10.0.0.0/8,localhost'

改完先别撤,确认这几项。内网请求直连返回 200 且代理日志里没有这条连接,外网请求仍然走代理,两种访问方式结果一致。

提醒一点。大小写两套变量在不同库里优先级不同,配完要重启进程再看,热改环境变量不会生效。如果同一现象隔几天又出现,说明根因没找到,别当偶发处理。

作者 9823189