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

解决Nginx连接Gunicorn出现111: Connection refused错误

Nginx连接Gunicorn失败(111: Connection refused)- 本地127.0.0.1连接问题

遇到的错误:连接上游时失败 (111: Connection refused),场景为Nginx与Gunicorn分别通过Docker启动,尝试通过127.0.0.1进行连接。

关键配置细节

构建Nginx的Dockerfile

FROM nginx:latest
EXPOSE 443
COPY nginx.conf /etc/nginx/nginx.conf

Nginx.conf配置

events {}
http {
  client_max_body_size 1000M;
  server {
    server_name _;
    location / {
      proxy_pass              http://127.0.0.1:8000/;
      proxy_set_header        Host $host;
    }

    listen 443 ssl;
    ssl_certificate cert/name.crt;
    ssl_certificate_key cert/name.key;
  }
}

启动Nginx的Docker命令

docker run -dit -p 0.0.0.0:443:443 -v /etc/cert/:/etc/nginx/cert <MY NGINX CONTAINER> nginx -g 'daemon off;'

启动Gunicorn服务器的Docker命令

docker run -dit -p 127.0.0.1:8000:8000 <My FASTAPI CONTAINER> gunicorn -w 3 -k uvicorn.workers.UvicornWorker -b 127.0.0.1:8000 server:app

其他补充信息

  • FastAPI容器构建时已暴露8000端口
  • 启动顺序为:先启动Nginx容器,再启动Gunicorn容器
  • 使用Python requests库测试时,已设置verify=False跳过SSL验证

解决方法

通过两个修改即可解决连接拒绝问题:

  1. 将Gunicorn绑定地址从127.0.0.1:8000改为0.0.0.0:8000
  2. 在启动Nginx容器的命令中添加--network="host"参数

修改后的Gunicorn启动命令:

docker run -dit -p 127.0.0.1:8000:8000 <My FASTAPI CONTAINER> gunicorn -w 3 -k uvicorn.workers.UvicornWorker -b 0.0.0.0:8000 server:app

修改后的Nginx启动命令:

docker run -dit --network="host" -v /etc/cert/:/etc/nginx/cert <MY NGINX CONTAINER> nginx -g 'daemon off;'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 03:35:26