- 先检测 Nginx 配置中是否有设置 client_max_body_size(client_max_body_size 默认值为1m(1024kb)),可以根据文件需求进行设置大小,例如:100M、500M等等...。
- 如果上述 client_max_body_size 有设置,并且大于文件大小。这时可以检测 client_body_buffer_size (client_body_buffer_size 是用于指定客户端请求主体缓冲区大小的配置项。在旧版本的nginx中(在Nginx 1.17.x版本之前),默认值为client_body_buffer_size 8k,而在新版本的nginx中,默认值为client_body_buffer_size 16k。)
-
如果请求的数据小于client_body_buffer_size直接将数据先在内存中存储。如果请求的值大于client_body_buffer_size小于client_max_body_size,就会将数据先存储到临时文件中,默认情况下,它是位于当前运行的 Nginx 程序目录下的 client_body_temp,可以由client_body_temp_path 手动设置。
-
如果以上都没有问题,这个时候可以去查询 client_body_temp_path 设置的目录或者默认目录 是否有写入权限。没有权限是会报 500。
-
使用 chmod 对该目录进行赋权限。基本就可以了。
纯记录:上传文件 Nginx 返回 500
最新推荐文章于 2024-09-01 16:39:16 发布