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

本地Docker环境Nginx反向代理报Connection refused错误求助

解决Nginx反向代理Docker容器时出现Connection refused(111)的问题

以下是针对性的排查与解决步骤:

1. 确认容器处于同一Docker网络

Docker容器默认使用bridge网络,但手动创建的容器可能分属不同网络,导致无法互通:

  • 执行docker network ls查看当前所有Docker网络
  • 执行docker inspect <容器名称/ID>查看目标容器所属网络
  • 若不在同一网络,可将容器加入同一网络:
    docker network connect <目标网络名> <容器名称>
    
    或创建自定义网络并启动容器:
    docker network create my-proxy-network
    docker run --network my-proxy-network --name upstream-container ...
    docker run --network my-proxy-network --name nginx-proxy ...
    

2. 核对上游容器的端口配置

  • 确认Nginx配置中proxy_pass指向的是容器内部端口,而非主机映射端口。比如上游容器将内部80端口映射到主机8080,Nginx配置应写http://upstream-container:80而非http://localhost:8080
  • 进入上游容器,执行ss -tulpn(或netstat -tulpn),确认服务监听的是0.0.0.0(允许容器外部访问)而非127.0.0.1(仅容器本地访问)

3. 验证Nginx配置的上游地址正确性

  • 确保proxy_pass使用容器名称或容器IP,而非localhost(容器内的localhost指向自身,而非主机)。示例配置:
    location / {
        proxy_pass http://upstream-container:80;
    }
    
  • 进入Nginx容器执行ping <上游容器名称>,测试是否能解析到上游容器IP,确认网络连通性

4. 检查上游服务状态

  • 执行docker logs <上游容器名称>查看服务日志,确认服务是否正常启动、无报错
  • 通过主机映射端口访问上游服务,验证服务本身可正常响应请求

5. 排查防火墙/安全组规则

  • 确认主机防火墙未拦截Docker容器间的网络流量
  • Linux环境可执行iptables -L查看规则,确保Docker相关网络的流量被允许

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 20:09:55