引起nginx 403 forbidden通常是三种情况:一是缺少索引文件,二是权限问题,三是SELinux状态.
一、缺少index.html或者默认访问页面,就是配置文件中location下没有默认的index.html。也可以通过index指定 index.htm文件位置。
1 | server { |
二、权限问题,如果nginx没有web目录的操作权限,也会出现403错误。
解决办法:1. 修改web目录的读写权限,或者是把nginx的启动用户改成目录的所属用户,重启Nginx即可解决
- 把文件目录的访问权限分配给nginx用户
使用chown命令可以修改文件或目录所属的用户:
chown 用户 目录或文件名
例如:chown qq /home/qq (把home目录下的qq目录的拥有者改为qq用户)
使用chgrp命令可以修改文件或目录所属的组:
chgrp 组 目录或文件名
例如:chgrp qq /home/qq (把home目录下的qq目录的所属组改为qq组)
三、SELinux设置为开启状态(enabled)的原因
首先查看本机SELinux的开启状态,如果SELinux status参数为enabled即为开启状态1
/usr/sbin/sestatus -v
如果显示disabled 表示SELinux已经关闭了。如果状态为enabled,则需要关闭。
1、临时关闭(不用重启)1
setenforce 0
2、修改配置文件 /etcselinux/config,将SELINUX=enforcing改为SELINUX=disabled1
2
3
4vi /etc/selinux/config
#SELINUX=enforcing
SELINUX=disabled
我这次遇到的就是第三个问题 SELinux(Security-Enhanced Linux): 强制访问控制的实现,是 Linux历史上最杰出的新安全子系统
问题解决资料学习来自:cleey