nginx由于权限导致大文件不能上传的问题

Posted zzw-zyba

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx由于权限导致大文件不能上传的问题相关的知识,希望对你有一定的参考价值。

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用户权限太小,文件不能写入所致。而小文件不缓存,直接就转发到应用程序了。 下次有空再仔细分析一下。

以上是关于nginx由于权限导致大文件不能上传的问题的主要内容,如果未能解决你的问题,请参考以下文章

php+nginx导入太大文件报http error错误的原因

无法使用 Nginx(反向代理+SSL 协商)和 Tomcat 上传大文件

qxx项目大文件上传

PHP大文件分片上传/多线程上传

PHP大文件分片上传/多线程上传

PHP代码中使用post参数上传大文件