概述
在测试服测试项目时出现文件下载失败
排查问题
经过排查发现Nginx
给出报错信息
open() "/home/server/nginx/fastcgi_temp/2/10/0000000102" failed (13: Permission denied) while reading upstream
Nginx
提示我们没有权限操作
然后我们进入目录/home/server/nginx
检查fastcgi_temp
文件所有者,我们的是root组的root
用户
我们再检查Nginx worker
的用户组及用户名
ps -ef | grep nginx
# 我们可以看到nginx的worker进程是www用户
root 80246 1 0 10:37 ? 00:00:00 nginx: master process /home/server/nginx/sbin/nginx
www 80247 80246 0 10:37 ? 00:00:00 nginx: worker process
root 82877 82840 0 13:56 pts/7 00:00:00 grep --color=auto nginx
# 查看www用户所在的组,以及组内成员
groups www
#我们的是www用户组的www用户
www:www
解决问题
我们在执行下载时,nginx worker
进程在给fastcgi_temp
写入缓存时没有权限
因此,我们只需要给fastcgi_temp
目录修改权限为nginx
的启动用户www:www
chown -R www:www fastcgi_temp/