Karp 的技术博客

2025-01-06T10:05:07.png
在处理 HTTP 请求时,Nginx 会返回 413 错误代码,表示客户端请求的主体过大。这通常发生在上传文件或发送大数据时。根据你的日志示例:

2025/01/06 17:00:54 [error] 7038#0: *121143 client intended to send too large body: 2120716 bytes, client: 111.111.11.11, server: app.topexpre.com, request: "POST /test HTTP/1.1", host: "test.com"

这表明客户端尝试发送 2,120,716 字节的数据,但 Nginx 默认的 client_max_body_size 配置限制了请求体的大小。

解决方案

1. 修改 Nginx 配置

为了允许更大的请求体,你可以在 Nginx 配置文件中设置 client_max_body_size 参数。你提到的修改可以放在 httpserverlocation 块中。以下是如何进行修改的示例:

http 块中

如果你希望所有的 Nginx 服务器都应用此设置,可以在 nginx.confhttp 块中添加:

http {
    ...
    client_max_body_size 10m;  # 设置请求体最大为 10MB
    ...
}

server 块中

如果你只想在特定的虚拟主机中应用此设置,可以在 server 块中添加:

server {
    listen 80;
    server_name test.com;
    
    client_max_body_size 10m;  # 设置请求体最大为 10MB
    
    ...
}

location 块中

如果你希望只在特定路径下允许更大的请求体,可以在 location 块中配置:

location / {
    client_max_body_size 10m;  # 设置请求体最大为 10MB
    ...
}

2. 重新加载 Nginx 配置

完成修改后,记得重新加载 Nginx 配置,以使更改生效:

sudo nginx -s reload

3. 验证配置

可以使用以下命令检查 Nginx 配置是否有语法错误:

sudo nginx -t

如果输出显示 syntax is oktest is successful,则可以安全地重新加载配置。

nginx

版权属于:karp
作品采用:本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
更新于: 2025年01月06日 10:05
1

目录

来自 《Nginx 配置调整以解决 HTTP 413 错误》