# NGINX 报错 413 Request Entity Too Large 解决方案 ## 1、问题原因 用Nginx反向代理服务器,进行附件相关的操作时,当文件大小超过1M,会出现413 Request Entity Too Large,这是由于nginx客户端默认的最大请求体是1M。 ## 2、解决方案 通过修改Nginx配置文件的“**client_max_body_size**”属性来解决。nginx的默认配置文件是conf目录下的nginx.conf。 注意:如果有自行扩展的配置文件可在nginx.conf文件中查找include关键字去定位到相应的扩展配置文件。 该属性有三个地方可以配置,不通的地方的作用域不同。 ### a) 在http节点下(http全局) ```bash http { # 将nginx代理的所有请求实体的大小限制为1024m client_max_body_size 1024m; } ``` ### b) 在server节点下(server全局) ```bash server { # 将该服务下的所有请求实体的大小限制为1024m client_max_body_size 1024m; } ``` ### c) 在location节点下(单应用) ```bash location /test { # 将此路由请求的实体大小限制为1024m client_max_body_size 1024m; } ``` ## 3、重启nginx 修改完配置文件后,重启nginx即可。 ## 4、其他 修改nginx.conf里面的几个相关的配置参数 - `client_body_buffer_size 10m;` - 配置请求体缓存区大小, 如果小于设定值则会存储到内存中,大于则是存储到`client_body_temp_path`路径的硬盘中,一般同client_max_body_size大小一致 - `client_max_body_size 10m;` - 设置客户端请求体最大值 - `client_body_temp_path /data/temp;` - 设置临时文件存放路径。只有当上传的请求体超出缓存区大小时,才会写到临时文件中,注意临时路径要有写入权限