浏览器打开应用,如果需要加载大文件时,nginx会将文件保存到缓存中,此时可能会出现无法加载,报问题所显示的异常。
检查思路:
查看nginx中logs/error.log日志,会发现 open() "/data/PRG/nginx-1.8.0/proxy_temp/1/44/0000000441" failed (13: Permission denied) while reading upstream, 这样一段异常。有人会问,我用的是root用户启动,为什么还是没有读写权限呢?其实只要看看目录/data/PRG/nginx-1.8.0/proxy_temp 的用户归属会发现,其实归属用户是 “nobody”。
解决办法:
根据以上的思路只要将 /data/PRG/nginx-1.8.0/proxy_temp 的归属用户设置为nginx启动用户即可。
(1)修改nginx.conf 文件,在 worker_processes 前面添加 user <启动用户>。例如
(注:如上也可以看出,nginx默认/data/PRG/nginx-1.8.0/proxy_temp归属是nobody)
(2)用步骤(1)中设置的user 通过命令 sudo nginx。(说明:用sudo的原因是在Linux中1024以下的端口号都需要root权限才能使用,所以普通用户启动程序绑定会报出权限问题)
(3)刷新浏览器,发现加载正常。