OS: Centos7
Kernal: 3.10.0-327.el7.x86_64
在配置好django及相应的nginx反向代理后,发现web打开没有找到静态文件,nginx日志报permission denied, 检查过程如下:
1.检查/var/www/static目录的属主和权限,发现属主非www(nginx worker以www用户启动),权限正确
chown -R www.www /var/www/static
修改后发现仍然没有静态文件
2.没办法,搜索了一下,发现stackoverflow如下回答:
I've just had the same problem on a CentOS 7 box.
Seems I'd hit selinux. Putting selinux into permissive mode (setenforce permissive) has worked round the problem for now. I'll try and get back with a proper fix.
在命令行执行指令setenforce permissive后刷新恢复
这种办法只是把selinux的安全级别降低了,至于如何彻底解决,还在研究。
补充:
经过不停的搜索各种关键词,终于找到彻底解决办法:
1.安装audit.log的相关分析工具集
yum install setroubleshoot
2. 产生可访问的白名单
cat /var/log/audit/audit.log| grep nginx |audit2allow -M mynginx
3.使白名单生效
semodule -i mynginx.pp
4.恢复selinux默认功能
setenforce enforcing
再次刷新页面,静态文件正常,问题解决。