Centos7 nginx报错403 forbidden

参考链接:http://www.cnblogs.com/chinway/archive/2017/08/14/7356239.html

因为安全性的考虑这个也是默认会出现的错误,因为SELinux的存在:(

提供一般排错思路

网上大多数是关闭SELinux的方式(我自己不建议关闭),类似于这样

步骤一:

检查目录权限。权限不足的就加个权限吧。

例子:chmod -R 755 / var/www

 

步骤二:

打开nginx.conf

例子:vim /etc/nginx/nginx.conf

把 user 用户名 改为 user root 或 其它有高权限的用户名称即可

 

步骤三:

检查/etc/nginx/conf.d/nginx.conf (如果没有自己创建一个)

确保所有的root 后面接的都是你要展示的网站的路径

举例:

root   html;
请替换成
root   /usr/share/nginx/html;

 

步骤四:

方式一:

如果是centos,看一下selinux是否关闭了

查看SELinux状态:

1、/usr/sbin/sestatus -v      ##如果SELinux status参数为enabled即为开启状态

SELinux status:                 enabled

2、getenforce                 ##也可以用这个命令检查

关闭SELinux:

1、临时关闭(不用重启机器):

setenforce 0                  ##设置SELinux 成为permissive模式

                              ##setenforce 1 设置SELinux 成为enforcing模式

2、修改配置文件需要重启机器:

修改/etc/selinux/config 文件

将SELINUX=enforcing改为SELINUX=disabled

重启机器即可

 

方式二:

另一种方法不关闭SELinux,并通过这种方法实现了web访问

 

参考链接:http://blog.csdn.net/qidizi/article/details/41291397

 

记录一下工具安装和使用

安装人类能看得懂的转化工具:yum install setroubleshoot

echo >audit.log来清空这个日志,再刷新浏览器,访问一下这个url,让只生成一个出错日志

把出错内容转成可以看得懂的:sealert -a ./audit.log >qq.txt

 

通过转换的结果分析,执行以下命令:

sudo cat /var/log/audit/audit.log | grep nginx | grep denied | sudo audit2allow -M mynginx
sudo semodule -i mynginx.pp

 

posted @ 2018-02-15 13:16  时光不改  阅读(2464)  评论(0编辑  收藏  举报