You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

cURL error 7连接拒绝求助:请求时而成功时而失败

问题排查与解决方案

先明确核心现象:

  • cURL请求首次正常,刷新立即触发cURL error 7: Failed to connect to <my.site> port 443: Connection refused,等待5分钟后恢复,重复刷新又会出错
  • Postman发起请求始终正常
  • 网络链路:域名→路由器→Nginx→page_vm

结合你的Nginx配置和问题特征,给出以下排查方向和解决方案:

1. 对比cURL与Postman的请求差异

用curl -v https://<my.site>打印详细请求日志,和Postman的请求头做对比,重点关注:

  • User-Agent:部分服务会针对不同UA做访问限制,Postman的默认UA和cURL不同
  • Connection:Postman可能默认关闭长连接,而cURL默认启用HTTP/1.1的keep-alive,导致复用已失效的连接
  • 测试命令:curl --no-keepalive https://<my.site>,如果问题消失,说明是长连接复用引发的异常

2. 调整Nginx代理的超时与连接配置

你的Nginx配置缺少关键的超时设置,且未明确长连接处理规则,在location /块中添加以下配置:

# 延长代理超时时间,避免短时间内连接被强制断开
proxy_connect_timeout 60s;
proxy_send_timeout 60s;
proxy_read_timeout 60s;
# 强制关闭长连接,避免复用失效连接
proxy_set_header Connection "";

修改后重载Nginx配置:nginx -s reload,再测试cURL请求。

3. 排查路由器的NAT会话限制

家用路由器的NAT会话通常有超时时间和连接数限制,短时间内重复请求可能触发路由器的拦截机制:

  • 进入路由器管理后台,找到端口转发规则,将TCP会话超时时间调整为120秒以上
  • 检查是否有连接数限制选项,暂时关闭或调高限制值,测试是否解决问题

4. 检查后端page_vm的防火墙/安全策略

page_vm可能启用了fail2ban、iptables等安全工具,短时间内同一IP的频繁请求会被临时拉黑(通常5分钟自动解封):

  • 查看page_vm的iptables规则:iptables -L -n,确认是否有针对路由器IP的拦截条目
  • 检查fail2ban日志:tail -f /var/log/fail2ban.log,看是否是cURL请求触发了封禁规则
  • 若存在封禁,可调整安全工具的阈值,或者将路由器IP加入白名单

5. 调整Nginx的全局连接数配置

检查nginx.conf的events块,确保worker_connections足够支撑并发:

events {
    worker_connections 2048; # 默认1024,若请求量较大可适当调高
    use epoll; # 启用Linux系统下高效的事件驱动模型
}

重载Nginx配置后重新测试。


内容的提问来源于stack exchange,提问作者Arogant

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 14:40:16