cURL error 7连接被拒绝求助:本地正常线上API调用异常
你遇到的是cURL错误7(连接被拒绝):本地调试时能正常调用线上服务器API,但部署上线后出现该错误,相关代码如下:
$response = Http::get('http://my-domain/public/api/helloo'); dd($a->body());
以下是针对性解决方案:
检查服务器内部网络访问权限
若应用与API部署在同一台服务器,用域名访问可能触发防火墙/安全组限制。尝试改用内网IP或http://127.0.0.1/public/api/helloo调用,验证是否能连通。确认API服务运行状态与监听地址
登录线上服务器,直接执行curl http://my-domain/public/api/helloo测试本地访问是否正常。同时确认API服务监听的是0.0.0.0(允许所有地址访问),而非仅127.0.0.1(仅限本地)。核对域名解析与端口配置
检查线上服务器的DNS解析是否指向正确IP;若API未使用默认80端口,需在URL中补充端口号(如http://my-domain:8080/public/api/helloo)。同时确认Nginx/Apache的站点配置,确保my-domain的根目录、路由规则正确,未拦截请求。排查防火墙与安全组规则
检查服务器本地防火墙(如iptables、ufw)及云服务商安全组,确认允许应用所在服务器(或同服务器内部)访问API服务的对应端口。修正代码变量错误
代码中存在变量名不一致问题:请求结果赋值给$response,但后续调用的是$a->body(),需改为dd($response->body());,避免因变量未定义混淆问题排查。
内容的提问来源于stack exchange,提问作者Ali Hassan

