1、用了nginx代理后,应用上传文件时,发现小文件可上传,大文件上传不了,查nginx日志,发现有这么一句:client intended to send too large body
在nginx.conf配置文件的server加上 client_max_body_size 1024m;
重启nginx,上传大文件,还是上传不了,但后台没有client intended to send too large body日志了。
此时后台有日志如:2019/08/02 18:37:35 [crit] 437115#0: *34 open() "/usr/local/nginx/client_body_temp/0000000009" failed (13: Permission denied)。 而小文件可上传。
2、再次编辑nginx.conf文件,开头加上 user root;
#user nobody;
user root;
worker_processes 1;
3、再次重启nginx,大文件可以上传了。
4、问题分析:还没仔细分析。
但想原因应可能是nginx没加user root之前,是以默认的nobody用户运行的,而用nginx上传文件时,大文件要先在某个目录缓存一下再转发给应用,但nobody用户权限太小,文件不能写入所致。而小文件不缓存,直接就转发到应用程序了。 下次有空再仔细分析一下。