Skip to content

Nginx 上传图片时返回 500 错误

🏷️ Nginx

最终运维发现不是下面说的配置问题,而是那台 Nginx 服务器的磁盘有问题,导致所有的文件都不能写。

小图片过小时不会创建临时文件所以没问题;当超过 buffer 的大小时,创建临时文件失败,所以返回了 500 错误。


上传文件大小相关的有三个配置

  • client_body_buffer_size 配置请求体缓存区大小, 不配的话,
  • client_body_temp_path 设置临时文件存放路径。只有当上传的请求体超出缓存区大小时,才会写到临时文件中
  • client_max_body_size 设置上传文件的最大值

  1. 文件大小超过了 client_body_buffer_size
  2. client_body_temp_path 的临时文件路径居然没有写权限

以上两个原因导致了返回 500 错误。

如果上传文件大小超过 client_max_body_size 时,会报 413 entity too large 的错误。


传送门:nginx 服务器大文件上传时 500 错误