Nginx – failed(13: Permission denied) while reading upstream
今天在研究lnmp的安全问题,将nginx worker和php-fpm worker进程设为不同用户,网站目录和php可能操作到的目录设置文件夹的owner为php-fpm进程的用户,发现有时候网站页面会加载不全,特别是POST动作的时候。
查看error_log,发现了很多类似
2014/08/09 15:56:13 [crit] 17915#0: *4 open() "/var/cache/nginx/fastcgi_temp/1/00/0000000001" failed (13: Permission denied) while reading upstream, client:
这样的错误,查看/var/cache/nginx/fastcgi_temp/目录下的文件权限,发现:
|
|
通过搜索得知nginx为了安全默认将缓存目录设置为700权限,也就是说只有nginx worker进程的用户才有对缓存目录的读写权限,其他任何用户和组都无权限,联想到刚才我将nginx worker进程的用户由nobody改为nginx,之前nobody用户生成的缓存目录在换成nginx用户后就没权限读写了,所以会报错,将缓存目录的属主重新改成nginx即可解决问题,或者直接清空缓存目录,nginx自动重新生成的缓存目录文件权限就正确了。
- 原文作者:槛外小筑
- 原文链接:https://www.kwxiaozhu.com/archives/893.html
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议. 进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。