上传1GB以上文件时出现ERR_CONNECTION_RESET连接重置问题求助
解决大文件上传出现ERR_CONNECTION_RESET的问题
1. 补全PHP关键配置参数
你已调整max_execution_time和max_input_time,但还需确认以下参数是否设置合理(单位支持M/G,例如10G代表10GB):
upload_max_filesize: 需大于等于目标上传文件大小post_max_size: 需略大于upload_max_filesize(POST请求还包含表单其他数据)memory_limit: 确保PHP进程有足够内存处理大文件
注意:cPanel环境存在系统级php.ini和用户级php.ini差异,可创建phpinfo.php文件(内容为<?php phpinfo(); ?>)访问查看,确认修改的是当前PHP版本对应的配置文件。修改后需重启PHP-FPM或Apache服务生效。
2. 调整Apache服务器配置
连接重置常与Apache的超时或请求体限制有关,需修改Apache主配置文件(如/etc/httpd/conf/httpd.conf)或虚拟主机配置文件:
- Timeout: 增大超时时间,例如设置为
1800(30分钟),避免上传过程中连接超时 - LimitRequestBody: 设置为足够大的值,例如
10737418240(对应10GB),限制HTTP请求体的最大大小 - mod_reqtimeout模块设置:若启用该模块,添加或修改以下配置,防止因传输速率过低被断开:
RequestReadTimeout header=20-40,MinRate=500 RequestReadTimeout body=60,MinRate=500
修改后重启Apache服务:systemctl restart httpd
3. 检查cPanel/WHM的全局限制
WHM和cPanel的全局设置可能覆盖PHP配置:
- 登录WHM,进入Tweak Settings -> PHP,确认
Maximum HTTP POST size和Maximum upload size per account设置足够大 - 登录对应cPanel账户,进入Select PHP Version -> Options,可视化调整上传相关参数,确保与php.ini配置一致
4. 排查网络与防火墙超时
- 系统TCP超时:执行
sysctl net.ipv4.tcp_fin_timeout查看当前值(默认60秒),可临时增大至300秒:sysctl -w net.ipv4.tcp_fin_timeout=300,写入/etc/sysctl.conf实现永久生效 - 防火墙设置:检查firewalld或iptables是否有针对HTTP连接的超时限制,确保不会在上传过程中断开连接
5. 验证上传目录与磁盘状态
- 确保网站上传目录(如
public_html/uploads)权限正确,Apache/PHP进程用户(通常为apache或nobody)拥有读写权限 - 执行
df -h检查服务器磁盘剩余空间,确认目标分区有足够空间存放大文件
内容的提问来源于stack exchange,提问作者Moayad Shloul
相关产品推荐
相关产品推荐

