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

Django服务器触发ConnectionResetError: [Errno 104]连接被对端重置问题求解

问题背景
  • 服务器运行过程中无明确诱因随机出现连接错误
  • 错误触发时所有请求被完全阻断,无需人工干预数分钟后即可自动恢复正常
  • 初步推测问题可能和文件上传相关的线程处理逻辑有关,尚未完成验证
错误堆栈
Exception occurred during processing of request from ('0.0.0.7', 23266)
web_1  | Traceback (most recent call last):
web_1  |   File "/usr/local/lib/python3.9/socketserver.py", line 683, in process_request_thread
web_1  |     self.finish_request(request, client_address)
web_1  |   File "/usr/local/lib/python3.9/socketserver.py", line 360, in finish_request
web_1  |     self.RequestHandlerClass(request, client_address, self)
web_1  |   File "/usr/local/lib/python3.9/socketserver.py", line 747, in __init__
web_1  |     self.handle()
web_1  |   File "/usr/local/lib/python3.9/site-packages/django/core/servers/basehttp.py", line 171, in handle
web_1  |     self.handle_one_request()
web_1  |   File "/usr/local/lib/python3.9/site-packages/django/core/servers/basehttp.py", line 179, in handle_one_request
web_1  |     self.raw_requestline = self.rfile.readline(65537)
web_1  |   File "/usr/local/lib/python3.9/socket.py", line 704, in readinto
web_1  |     return self._sock.recv_into(b)
web_1  | ConnectionResetError: [Errno 104] Connection reset by peer
排查思路

1. 上传逻辑关联验证

  • 在Django中添加全量请求日志中间件,记录每个请求的接口路径、请求体大小、处理耗时、来源IP,匹配错误发生的时间点是否对应集中的大文件上传请求
  • 对文件上传接口做并发压测,模拟10~50倍日常流量的大文件上传场景,观察是否能复现请求阻断问题,压测过程中同步监控服务进程的线程数、内存占用、打开文件句柄数量

2. 系统内核参数排查

  • 执行ulimit -n检查服务进程的最大打开文件句柄限制,连接数过高导致句柄耗尽时会出现随机连接中断,可临时调大限制后观察问题是否复现
  • 检查TCP内核参数配置:确认net.core.somaxconn(TCP监听队列大小)、net.ipv4.tcp_tw_reuse(TIME_WAIT连接复用)、net.ipv4.tcp_fin_timeout(TIME_WAIT回收超时)参数配置是否合理,大量TIME_WAIT连接堆积会导致新连接被拒绝

3. 服务部署配置排查

  • 你当前使用的是Django自带的开发服务器(runserver),该服务为单进程多线程模型,并发处理能力极弱,高并发场景下极易出现请求阻塞。建议替换为Gunicorn、uWSGI等生产级WSGI服务器,配置合理的worker进程数和线程数
  • 检查WSGI服务的请求队列长度、超时时间配置,队列满后新请求会被直接重置,就会触发你遇到的ConnectionResetError报错

4. 网络层排查

  • 检查服务端和客户端之间的防火墙、WAF、负载均衡等中间设备的会话超时配置,会话超时后中间设备会主动断开连接,触发连接重置
  • 错误触发时执行netstat -anp统计当前服务器的TCP连接状态,重点统计ESTABLISHED、TIME_WAIT、CLOSE_WAIT状态的连接数量,确认是否为连接耗尽导致的阻塞

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 00:45:00