解决open()failed (13: Permission denied) while reading upstream的问题
前言:
[root@test nginx]# ps -ef|grep nginxroot 1686 1 0 2018 ? 00:00:00 nginx: master process /xxdata/nginx/sbin/nginxnginx 5443 5442 0 2018 ? 00:00:33 php-fpm: pool wwwnginx 5444 5442 0 2018 ? 00:00:34 php-fpm: pool wwwnginx 17130 1686 0 15:19 ? 00:00:00 nginx: worker processroot 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 40drwx------ 102 nginx nginx 4096 Mar 9 2016 0drwx------ 102 nginx nginx 4096 Mar 9 2016 1drwx------ 102 nginx nginx 4096 Mar 9 2016 2drwx------ 102 nginx nginx 4096 Mar 9 2016 3drwx------ 102 nginx nginx 4096 Mar 9 2016 4drwx------ 102 nginx nginx 4096 Mar 9 2016 5drwx------ 102 nginx nginx 4096 Mar 9 2016 6drwx------ 102 nginx nginx 4096 Mar 9 2016 7drwx------ 102 nginx nginx 4096 Mar 9 2016 8drwx------ 102 nginx nginx 4096 Mar 9 2016 9