_给客户部署服务器,系统版本是centos7.之前部署一直用的是centos6.5, 开始很顺利,开开心心的rpm了nginx,成功启动。访问nginx首页成功。ok!
接下来的事,就有点惨不忍睹了。为此付出了一下午的代价,差点砸坏电脑。 就是在做静态文件映射的时候。始终出现403 forbidden错误。开始排查问题_
- .``` ps aux | grep nginx
2. 排查映射文件是否具有"r"权限。发现也没有问题。
3. 到这步就有点开始怀疑人生了,nginx版本不对?卸载重装?还不对?再卸载重装 于是开始了抓狂之路。
终于在反复查找资料后,发现了一个不起眼的文章,原来是在centos7中,对于这种nginx转向用于http请求的文件,要被赋予httpduser_contentt这个权限。哦沃特,简直是shit。下面是解决方法
假设你的 Nginx 配置没有任何问题,运行 getenforce 的结果是 Enforcing。
首先让 SELinux 允许 httpd[1] 访问用户目录。很简单,root 运行 ```
setsebool -P httpd_enable_homedirs on 。
"-P" 的意思是 permanent,不带 -P 的话系统重启后恢复默认配置。
然后修改 /home/user/static 的 SELinux context。告诉 SELinux,允许此目录被 httpd 访问:
chcon -v -t httpd_user_content_t /home/user/static
ok到这一步 大功告成!!!!!!!