nginx出现403错误的解决方法

nginx出现403错误的解决方法_html

 

2024/08/31 17:06:52 [error] 26005#26005: *11 "/root//frontend/dist/index.html" is forbidden (13: Permission denied), client: 220.196.160.53, server
: 81.70.112.191, request: "GET / HTTP/1.1", host: "81.70.112.191"

 

 

测试的结果:

1)用 我们自己的文件 替换 nginx的默认示例文件夹html 中的内容,可以。

 

nginx出现403错误的解决方法_重启_02

2) 把user nginx 改为 user root ,也可以

nginx出现403错误的解决方法_重启_03

 

 

一、由于启动用户和nginx工作用户不一致所致

1.1 查看nginx的启动用户

 

[root@VM-8-12-centos ~]# ps aux | grep "nginx: worker process"
root      3920  0.0  0.0 112812   976 pts/2    S+   17:08   0:00 grep --color=auto nginx: worker process
nginx    26004  0.0  0.1  41952  2488 ?        S    16:48   0:00 nginx: worker process
nginx    26005  0.0  0.1  41952  2496 ?        S    16:48   0:00 nginx: worker process

 

[root@VM-8-12-centos ~]# cat /etc/passwd | grep nginx
nginx:x:994:991:Nginx web server:/var/lib/nginx:/sbin/nologin

1.2 将 nginx.config 的 user 改为和启动用户一致,

命令:vi conf/nginx.conf

 

nginx出现403错误的解决方法_重启_04

 

二、缺少index.html 文件

1.    server {
 2.      listen       80;
 3.      server_name  localhost;
 4.      index  index.php index.html;
 5.      root  /XXX/www/;
 6.    }

 

三、权限问题,如果nginx没有web目录的操作权限,也会出现403错误。

解决办法:修改web目录的读写权限,或者是把nginx的启动用户改成目录的所属用户,重启Nginx即可解决

1.    chmod -R 777 /data
2.    chmod -R 777 /data/www/

chown nginx:nginx -R /root/nginxlog

chown nginx:nginx -R /usr/local/logs/error.log

四、SELinux设置为开启状态(enabled)的原因。

4.1、查看当前selinux的状态。

  /usr/sbin/sestatus

#  /usr/sbin/sestatus
SELinux status:                 disabled

4.2、将SELINUX=enforcing 修改为 SELINUX=disabled 状态。

1.    vi /etc/selinux/config
2.
3.    #SELINUX=enforcing
4.    SELINUX=disabled
4.3、重启生效。reboot。

reboot
重启 nginx

 nginx -s reload

参考:

https://www.sohu.com/a/260081807_639793