首页 > 运营 > 帮助中心 > 正文

如何解决网站上出现403 forbidden?

2020-01-29 17:34:17
字体:
来源:转载
供稿:网友

网站出现403 forbidden怎么解决?如何解决网站上出现403 forbidden?网站上出现403 forbidden要怎样解决?网站上出现403 forbidden要如何解决?错新站长网给你解答。

网站出现403 forbidden怎么解决?403 forbidden是什么意思?403 Forbidden 是HTTP协议中的一个状态码(Status Code)。可以简单的理解为没有权限访问此站。Nginx网站出现403 forbidden的原因及故障模拟重现的解决!

如何解决网站上出现403 forbidden?_www.cuoXin.com

1、原因之一是 Nginx 配置文件的 index 参数里没有指定默认首页文件名,下面是 Nginx 配置文件里指定默认首页的参数。

index index.html index.htm; #<==不同的首页文件用空格分隔,按顺序生效

问题模拟示例:

[root@www ~]# cd /application/nginx/conf/extra

[root@www extra]# cat www.conf

#www virtualhost by oldboy

server {

listen 80;

server_name www.etiantian.org;

location / {

root html/www;

#index index.html index.htm; #<==注释首页文件参数配置

}

access_log off;

}

[root@www extra]# ../../sbin/nginx -s reload

[root@www extra]# tail -1 /etc/hosts

10.0.0.8 www.etiantian.org bbs.etiantian.org blog.etiantian.org etiantian.org

[root@www extra]# ll ../../html/www/

总用量 12

drwxr-xr-x 2 root root 4096 4月 15 14:20 blog

-rw-r--r-- 1 root root 4 4月 17 17:11 index.html #<==存在首页文件

drwxr-xr-x 2 root root 4096 4月 15 14:19 oldboy

[root@www extra]# curl -I -s 10.0.0.8|head -1

HTTP/1.1 403 Forbidden

#<==问题是,Nginx没有指定首页文件的参数,因此访问Nginx时不会把index.html当首页,所以报403错误。

2、原因之二是网站站点目录下没有配置文件 index 参数里指定的首页文件 index.html 或 index.htm 。

问题示例:

[root@www extra]# cat www.conf

#www virtualhost by oldboy

server {

listen 80;

server_name www.etiantian.org;

location / {

root html/www;

index index.html index.htm; #<==配置首页文件配置

}

access_log off;

}

[root@www extra]# ../../sbin/nginx -s reload

[root@www extra]# rm -f ../../html/www/index.html

#<==删除站点目录下的物理首页文件

[root@www extra]# curl -I -s 10.0.0.8|head -1

HTTP/1.1 403 Forbidden

#<==问题是,Nginx有指定首页文件的参数,并且也指定了首页文件,但是首页文件并不存在,所以报403错误。

以上两个 403 的原因除了正确配置解决外,还可以通过一个参数来解决,就是:

autoindex on; #<==当找不到首页文件时,会展示目录结构,这个功能一般用于下载,例如:阿里云镜像站点。

示例如下:

[root@www extra]# cat www.conf

#www virtualhost by oldboy

server {

listen 80;

server_name www.etiantian.org;

location / {

root html/www;

autoindex on; #<==当找不到首页文件时,会展示目录结构,这个功能一般用于下载,例如:阿里云镜像站点。

}

access_log off;

}

当不配置 index 首页时,效果如下:

Nginx网站出现403 forbidden的原因及故障模拟重现

3、原因之三是站点目录或内部的程序文件没有 Nginx 的用户访问权限。

[root@www extra]# echo test > ../../html/www/index.html

[root@www extra]# chmod 700 ../../html/www/index.html

#<==设置700让nginx用户无权读取

[root@www extra]# ls -l ../../html/www/index.html

-rwx------ 1 root root 5 4月 17 17:15 ../../html/www/index.html

[root@www extra]# curl -I -s 10.0.0.8|head -1

HTTP/1.1 403 Forbidden #<==403错误

[root@www extra]# chmod 755 ../../html/www/index.html

#<==设置755让nginx用户有权读取

[root@www extra]# curl -I -s 10.0.0.8|head -1

HTTP/1.1 200 OK

#<==200 OK了

4、原因之四是 Nginx 配置文件中设置 allow 、 deny 等权限控制,导致客户端没有没权限访问。

[root@www extra]# cat www.conf

#www virtualhost by oldboy

server {

listen 80;

server_name www.etiantian.org;

location / {

root html/www;

index index.html index.htm;

allow 192.168.1.0/24;

deny all;

}

access_log off;

}

[root@www extra]# curl -I -s 10.0.0.8|head -1

HTTP/1.1 200 OK

#<==设置755让nginx用户有权读取

[root@www extra]# ../../sbin/nginx -s reload

[root@www extra]# curl -I -s 10.0.0.8|head -1

HTTP/1.1 403 Forbidden

错新站长网提示:上述出现 403 错误的问题并不是 Nginx 才有, Apache 服务的 Forbidden 403 问题同样也是这几个问题导致的,只是不同的软件的参数细节略有区别而已。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表