nginx的403 Forbidden解决的办法(权限文件和文件不存在、SElinux 开启)

nginx配置好了,出现403 Forbidden主要有两种原因:1、nginx没有访问目录的权限;2、nginx的目录里面没有默认文档,并且没有列出目录的权限。

启动了nginx,访问网站,然后出现

403 Forbidden

1、权限问题

这个就是权限的问题,要保证,nginx对配置的目录有权限。 
首先,我们去查看一下,配置的目录,下文中{nginx}表示你的nginx安装路径:

vi {nginx}/conf/nginx.conf
 
 
  • 1
  • 1

然后找到这一段:

server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   /home/xxx/website/nginxweb;
            index  index.html index.htm;
        }
     }

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

其中的root /home/xxx/website/nginxweb;中的/home/xxx/website/nginxweb就是你的目录,index是你的默认文档。

我们去看看这个目录你是什么权限,这个我就不说了。

然后我们看看我们的nginx是什么权限:

nobody   31222 31159  0 22:52 ?        00:00:00 nginx: worker process
 
 
  • 1
  • 1

可以看到是nobody用户运行的,所以,我们要修改成,拥有权限的用户,或者修改目录的权限,我说一下修改nginx运行的用户。

在{nginx}/conf/nginx.conf 前面加上一句:

user xxx;
 
 
  • 1
  • 1

就可以了,其中,xxx就是运行nginx的用户。

2、目录里面没有

完成了上面的,访问还出现错误,很有可能是你的目录里没有文件,然后又没有列出目录的权限。 
检查你的/home/xxx/website/nginxweb文件夹里面是否有配置的默认文件,默认文件在nginx.conf里面的index,上面已经介绍过了。

解决办法,在你的/home/xxx/website/nginxweb文件夹里面创建一个index.html的文件试试。


3.SElinux 开启

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

重启机器即可



### 解决 Nginx 返回 403 Forbidden 错误的方法 #### 修改文件目录权限 当遇到403 Forbidden错误时,可能是由于Nginx没有足够的权限访问所需的文件或目录。通过调整这些资源的权限可以解决问题。 对于位于`/opt/html/`下的网站根目录及其子项,可以通过赋予更宽松的权限来允许Nginx读取它们: ```bash chmod -R 755 /opt/html/ ``` 这会给予所有者完全控制权(读、写、执行),而群组其他人都只有读取进入该目录的权利[^2]。 #### 更改所有权至Nginx运行账户 另一种方式是改变整个站点文件夹的所有者为Nginx服务使用的用户账号,比如通常默认的是`www-data`或者配置中指定的其它用户名字: ```bash chown -R www-data:www-data /opt/html/ ``` 完成更改后记得重启Nginx使设置生效[^1]。 #### 检查并修正特殊权限情况 有时即使设置了适当的标准Unix/Linux文件系统权限仍然会发生403错误。这是因为某些情况下可能存在额外的安全机制影响着实际可用的操作权利。例如SELinux策略可能阻止了预期的行为;又或是之前处理过的压缩包解压后的文件继承了一些严格的ACLs (Access Control Lists),像这样drwx------形式显示出来的权限就表明除了所有者外没有任何人能够查看里面的内容[^3]。 针对这种情况应该仔细审查相关路径上的每一个组成部分直到找到最底层的原因所在,并针对性地做出相应调整以满足需求而至于过度开放必要的风险敞口。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值