如果客户端POST一个比较大的文件,长度超过了nginx缓冲区的大小,需要把这个文件的部分或者全部内容暂存到client_body_temp目录下的临时文件,这个目录没有设置权限的时候,会报404错误,问题通常出现在本地环境上,
解决方法:
开启nginx日志,到日志目录下,tail -F 日志名,访问页面报nginx404,日志打印发现报
open() "/xxx/xxx/xxx/xxx/xxx/client_body_temp/0000000153" failed (13: Permission denied)
解决方案1
给这个目录权限
mac (本人解决方法)
sudo chmod -R 777 /usr/local/var/run/nginx/client_body_temp/
(可解决问题,权限太高了,但不太建议这么做)
解决方案2(网上查的,没有亲测过)
在nginx的配置中加入client_body_temp目录创建路径 client_body_temp_path /spool/nginx/client_temp 3 2;
可能创建的文件路径为
/spool/nginx/client_temp/702/45/00000123457