环境说明:
- 新装系统centos7
- 配置完成nginx,一切正常,浏览器可以访问成功
- 浏览器访问静态资源报403 forbidden错误
- nginx配置访问静态资源配置网上太多此处略过
原因分析:
- 403 forbidden是HTTP协议中的一个状态码(Status Code)。可以简单的理解为没有权限访问此站。
-
查看nginx日志,路径:/var/log/nginx/error.log;打开日志发现报错Permission denied,详细报错如下:
2018/12/19 18:23:59 [error] 5032#5032: *1 "/home/index.html" is forbidden (13: Permission denied), client: 192.168.1.32, server: _, request: "GET / HTTP/1.1", host: "192.168.1.160"
有以上差不多就是权限的问题不能访问
解决方案:
-
vim /etc/nginx.config
nginx.config的user改为和启动用户一致,我是root用户 user nginx 修改成 user root
-
vim /etc/selinux/config
SELINUX=enforcing 修改成 SELINUX=disabled
-
重启系统生效
reboot
SELinux解释说明:
-
SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的实现,是 Linux历史上最杰出的新安全子系统。
一般我们不用它,安全防护可以用防火墙等 -
通过命令 cat /etc/selinux/config 来查看状态 默认状态是enforcing
# This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled # SELINUXTYPE= can take one of three values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection. SELINUXTYPE=targeted
通过配置发现SELinux有3种状态:enforcing (执行中)、permissive (不执行但产生警告)、disabled(关闭)
修改后需要重启系统生效 -
当然也可以通过 /usr/sbin/sestatus 查看SELinux状态
SELinux status: disabled
版权声明:本文为liuxiaoming1109原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。