15

记录解决Nginx出现报错403 forbidden的四种方法

 3 years ago
source link: https://www.huhexian.com/27338.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

记录解决Nginx出现报错403 forbidden的四种方法

青山 2022-02-1713:42:42评论1102字

我是在在本地用虚拟机中通过yum安装nginx的,安装一切正常,但是访问时报403,于是查看nginx日志,路径为/var/log/nginx/error.log。

记录解决Nginx出现报错403 forbidden的四种方法

打开日志发现报错Permission denied,详细报错如下:

  1. open() "/data/www/1.txt" failed (13: Permission denied), client: 192.168.1.194, server: www.web1.com, request: "GET /1.txt HTTP/1.1", host: "www.web1.com"

没有权限?于是找了不少资料,可以通过下面四步排查解决此问题。你可能只是其中之前配置有问题,不一定四个步骤都用上。

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

1.1查看nginx的启动用户,发现是nobody,而为是用root启动的

命令:ps aux | grep "nginx: worker process" | awk'{print $1}'
1.2将nginx.config的user改为和启动用户一致,

命令:vi conf/nginx.conf

二、缺少index.html或者index.php文件,就是配置文件中index index.html index.htm这行中的指定的文件。

1.    server {
2.      listen       80;
3.      server_name  localhost;
4.      index  index.php index.html;
5.      root  /data/www/;
6.    }
如果在/data/www/下面没有index.php,index.html的时候,直接文件,会报403 forbidden。

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

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

1.    chmod -R 777 /data
2.    chmod -R 777 /data/www/
四、SELinux设置为开启状态(enabled)的原因。

4.1、查看当前selinux的状态。

1.    /usr/sbin/sestatus
4.2、将SELINUX=enforcing 修改为 SELINUX=disabled 状态。

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

1.    reboot


Recommend

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK