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用戶權限太小,文件不能寫入所致。而小文件不緩存,直接就轉發到應用程序了。 下次有空再仔細分析一下。