413 Request Entity Too Large Sorry for the inconvenience.解决方案-Powered by Tengine tengine采用了tengine-优雅草吴银满|卓伊凡
你遇到的错误信息:
413 Request Entity Too Large
Sorry for the inconvenience.
Please report this message and include the following information to us.
Thank you very much!
URL: https://stqingtingadmin.youyacao.com/prod-api/uploadVideo
Server: vm-8-3-centos
Date: 2025/05/10 13:05:34
Powered by Tengine
tengine
这是一个 HTTP 413 状态码错误,意思是客户端请求体(即上传的数据)超过了服务器允许的最大大小限制,导致服务器拒绝处理请求。
需要调整 Tengine(类似 Nginx)的配置,增加允许上传文件的大小限制。
具体步骤:
/etc/nginx/nginx.conf
或者类似路径。client_max_body_size
指令。例如:http {
...
client_max_body_size 100M; # 这里设置允许最大上传为100MB,视需要调整
...
}
sudo systemctl restart tengine
# 或者
sudo service tengine restart
错误 413 表示上传文件大小超限,从服务器角度需要增加 client_max_body_size
参数值;从用户角度需要减小上传文件体积,或联系服务器管理员解决。
这里我们如果找不到 tengine 服务器配置,我们尝试以下方法
如果找不到 Tengine/Nginx 的配置文件位置,可以按照以下系统化的方法进行定位:
ps aux | grep -E 'nginx|tengine'
root 1234 0.0 0.1 12345 6789 ? Ss 10:00 0:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
-c
后面的路径(如 /etc/nginx/nginx.conf
)。nginx -t 2>&1 | grep -i "using configuration"
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: using configuration /etc/nginx/nginx.conf
# 检查默认配置目录
ls -l /etc/nginx/ # 最常见路径
ls -l /usr/local/nginx/conf/ # 源码编译安装可能在此
ls -l /usr/local/tengine/conf/ # Tengine 专用路径
# 全局搜索
find / -name "nginx.conf" 2>/dev/null
find / -name "tengine.conf" 2>/dev/null
client_max_body_size
的配置/etc/nginx/nginx.conf
),检查其中是否包含:http {
client_max_body_size 10M; # 默认值通常较小(如1M)
}
/etc/nginx/conf.d/*.conf
)/etc/nginx/sites-enabled/default
)grep "loading configuration" /var/log/nginx/error.log
/var/log/nginx/error.log
/usr/local/nginx/logs/error.log
tengine -V
http
或 server
块中添加:client_max_body_size 100M; # 按需调整大小
nginx -t # 测试配置语法
systemctl restart nginx # 重启服务
docker exec -it <容器名> /bin/bash
通过以上方法,一定能定位到配置文件位置。如果仍无法找到,可能是非标准安装或自定义路径,
然后 以上方案对我们其实不管用的,我们的tengine 是没有在服务器上搭建的 我们主要用的是腾讯云的cdn 因此这个服务在cdn
如果您的服务使用的是 腾讯云 CDN,并且错误提示显示服务器是 Tengine,那么实际上 Tengine 是腾讯云 CDN 的边缘节点服务器,而不是您自己的服务器。因此,您无法直接修改 Tengine 的 client_max_body_size
配置,因为这是腾讯云 CDN 的内部设置。
腾讯云 CDN 默认对上传文件大小有限制,通常:
uploadVideo
)超过这个限制,就会返回 413 错误。由于您无法直接修改 Tengine 配置,您可以采取以下方法解决:
腾讯云 CDN 默认限制上传大小,但某些产品(如 COS 回源 + CDN)可能支持调整:
client_max_body_size
(部分企业级客户可调整)。如果无法调整 CDN 限制,可以采用 分片上传(Chunked Upload) 方式:
示例(前端 JS 分片上传):
async function uploadLargeFile(file) {
const CHUNK_SIZE = 10 * 1024 * 1024; // 10MB
let chunks = Math.ceil(file.size / CHUNK_SIZE);
for (let i = 0; i < chunks; i++) {
const chunk = file.slice(i * CHUNK_SIZE, (i + 1) * CHUNK_SIZE);
const formData = new FormData();
formData.append("file", chunk);
formData.append("chunkIndex", i);
formData.append("totalChunks", chunks);
await fetch("https://your-api.com/uploadChunk", {
method: "POST",
body: formData,
});
}
}
并没有在腾讯云后台找到相关配置 ,
如果 CDN 限制无法调整,可以:
https://your-origin-server.com/uploadVideo
而非 CDN 域名。client_max_body_size
:server {
client_max_body_size 500M; # 允许大文件上传
}
https://cdn.yourdomain.com
(用于 JS/CSS/图片)https://api.yourdomain.com/uploadVideo
(不经过 CDN)如果您的业务涉及大文件上传(如视频),建议 直接使用腾讯云 COS(对象存储):
优势:
方案 | 适用场景 | 备注 |
---|---|---|
调整 CDN 上传限制 | 小范围调整(如 32MB → 100MB) | 需联系腾讯云支持 |
分片上传 | 超大文件(如视频) | 需前后端配合 |
直传源站 | 不想依赖 CDN 上传 | 需源站支持大文件 |
COS 直传 | 最佳方案,适合云存储 | 推荐使用 |
推荐方案:
如果仍有问题,建议 提交腾讯云工单
我卓伊凡 在使用中未发现问题,但是我同事发现了 于是我们继续找找原因
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。