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

Django+Gunicorn+Nginx环境下Connection Refused错误排查求助

问题排查:Nginx连接上游拒绝及重启失败

一、初始连接拒绝错误

网站搜索功能调用API时触发Nginx错误日志如下:

2022/08/31 21:01:56 [error] 726#726: *23 connect() failed (111: Connection refused) while connecting to upstream, client: 11.111.111.111, server: api.mydomain.com, request: "GET /dividends/IBM/3/5 HTTP/1.1", upstream: "http://127.0.0.1:8001/dividends/IBM/3/5", host: "api.example.com", referrer: "example.com/"

当前环境:supervisord管理的Gunicorn、MongoDB、Nginx均显示正常运行,初始Nginx配置中upstream指向127.0.0.1:8001。

二、修改套接字路径后Nginx重启失败

调整Nginx配置中proxy_pass为proxy_pass unix:/etc/systemd/system/gunicorn.socket;后,执行重启操作失败:

root@my-droplet:~/stocks_backend# sudo service nginx restart
Job for nginx.service failed because the control process exited with error code.
See "systemctl status nginx.service" and "journalctl -xe" for details.

当前gunicorn.socket配置内容:

[Unit]
Description=gunicorn socket

[Socket]
ListenStream=/run/gunicorn.sock

[Install]
WantedBy=sockets.target

三、排查与解决方案

1. 修复Nginx重启失败问题

  • 核心错误:套接字路径不匹配:gunicorn.socket配置中监听的是/run/gunicorn.sock,但Nginx配置里写的是/etc/systemd/system/gunicorn.socket,路径完全错误。
  • 修正步骤:
    1. 编辑Nginx配置文件/etc/nginx/sites-available/stocks_backend,将location /块中的proxy_pass改为:
      proxy_pass http://unix:/run/gunicorn.sock;
      
    2. 先测试Nginx配置语法是否正确:
      sudo nginx -t
      
    3. 确认语法无误后重启Nginx:
      sudo systemctl restart nginx
      

2. 解决初始连接拒绝问题

  • 原因分析:初始Nginx配置中upstream指向127.0.0.1:8001,但Gunicorn实际通过/run/gunicorn.sock套接字监听,而非TCP端口,导致连接被拒绝。
  • 后续验证步骤:
    1. 确认gunicorn.socket和gunicorn.service状态正常:
      sudo systemctl status gunicorn.socket
      sudo systemctl status gunicorn.service
      
    2. 检查套接字文件权限:确保Nginx进程用户(通常为www-data)对/run/gunicorn.sock有读写权限,可通过以下命令查看:
      ls -l /run/gunicorn.sock
      
      若权限不足,可在gunicorn.service配置中添加UMask=0007,或修改socket所属组为www-data。
    3. 若需改用TCP端口监听,需调整Gunicorn配置,让其监听127.0.0.1:8001,同时保持Nginx的upstream和proxy_pass指向该端口。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 07:36:22