nginx出现403错误的解决方法
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"
测试的结果:
用我们自己的文件替换nginx的默认示例文件夹html中的内容,可以了。
一、由于启动用户和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
二、缺少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