解決nginx無法下載大文件問題

解決open()failed (13: Permission denied) while reading upstream的問題

前言:

[root@test nginx]# ps -ef|grep nginx
root 1686 1 0 2018 ? 00:00:00 nginx: master process /xxdata/nginx/sbin/nginx
nginx 5443 5442 0 2018 ? 00:00:33 php-fpm: pool www
nginx 5444 5442 0 2018 ? 00:00:34 php-fpm: pool www
nginx 17130 1686 0 15:19 ? 00:00:00 nginx: worker process
root 17517 17228 0 15:31 pts/4 00:00:00 grep --color=auto nginx

出現問題:
網站頁面出現異常,無法下載大文件。

查看nginx的error.log日誌

2019/01/27 15:18:30 [crit] 23475#0: *39947969 open() "/xxdata/nginx/proxy_temp/4/44/0000200444" failed (13: Permission denied) while reading upstream, client: 110.70.240.98, server: api.xuexintest.com, request: "GET /training-srv/jy/report/downLoad/273e658b-d6a9-45ad-bdf5-893fcd261700©fileType=0&kd=1&zt=1&fx=1&jd=1&dp=1&ly=1&kdkp=1&subjectCode=chemistry&xnID=sjl HTTP/1.1", upstream: "http://10.17.16.104:1300/training-srv/jy/report/downLoad/273e658b-d6a9-45ad-bdf5-893fcd261700©fileType=0&kd=1&zt=1&fx=1&jd=1&dp=1&ly=1&kdkp=1&subjectCode=chemistry&xnID=sjl", host: "ai.test.com"

分析問題及解決方法:
分析問題:
出錯原因是work進程沒有打開/xxdata/nginx/proxy_temp/4/03/0000000034 文件的權限。work進程屬於nginx用戶組,nginx用戶名。因此只要把proxy_temp 目錄權限賦給nginx用戶組,nginx用戶名就可以了。
解決問題:

[root@test nginx]# chown -R nginx:nginx ./proxy_temp/
[root@test nginx]# ll proxy_temp/
total 40
drwx------ 102 nginx nginx 4096 Mar 9 2016 0
drwx------ 102 nginx nginx 4096 Mar 9 2016 1
drwx------ 102 nginx nginx 4096 Mar 9 2016 2
drwx------ 102 nginx nginx 4096 Mar 9 2016 3
drwx------ 102 nginx nginx 4096 Mar 9 2016 4
drwx------ 102 nginx nginx 4096 Mar 9 2016 5
drwx------ 102 nginx nginx 4096 Mar 9 2016 6
drwx------ 102 nginx nginx 4096 Mar 9 2016 7
drwx------ 102 nginx nginx 4096 Mar 9 2016 8
drwx------ 102 nginx nginx 4096 Mar 9 2016 9

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章