nginx:403 forbidden

nginx:403 forbidden

nginx:403 forbidden

出现这个错误一般以下原因引起:

1 启动用户与配置用户不匹配

这个就是 nginx.conf 中默认 #user nobody; 这一行,nobody 是默认的操作用户,而实际我们一般不使用此用户, 需要取消注释,并将nobody 修改为我们实际的操作用户。比如:

user root;

2 缺少index文件

在配置文件中 location 部分,/index index.html index.htm/ 这一行。 如果在/root/ 指向的路径中没有找到 index.html 或者 index.htm 文件,就会出现此错误。

在 nginx 的源码文件中有index.html 文件,将其复制到/root/指向的路径,即可。

cp /opt/nginx-1.18.0/html/index.html /mirrors/

3 selinux处于开启状态

selinux 是Linux 里控制端口开放与访问的一个安全性功能。开启了以后 ,我们很多端口都无法正常工作。 可以通过以下命令放开端口:

# CentOS 7
semanage port -a -t http_port_t -p tcp 7690
firewall-cmd --zone=public --add-port=7690/tcp --permanent
firewall-cmd --reload

或者直接关闭selinux:

setenforce 0
# 或者
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

4 目录没有权限

一般root 用户启动时,不会有这个原因。而如果是其他用户,则有可能是由于操作路径没有权限引起的。 修改/root/ 指向的路径的属组,或者给启动用户相应的权限:

  chownn -R <user>.<group> <path>
#  或者
  chmod -R 777 <path>

5 访问目录没有配置自动索引

比如:

    server {
        listen       8320 default_server;
#        listen       [::]:8320 default_server;
        server_name  local_mirror;
        root         /mirrors/;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location / {
        }

        error_page 404 /404.html;
            location = /40x.html {
        }

当我访问root下的子路径时,由于在location 中没有配置 autoindex选项,会出现403错误。

解决方法就是在location 中加入以下内容:

autoindex on;
autoindex_exact_size on;
autoindex_localtime on;

Author: halberd.lee

Created: 2020-07-07 Tue 11:59

Validate

posted @ 2020-06-10 23:50  halberd.lee  阅读(465)  评论(0编辑  收藏  举报