访问Nginx出现状态码为403 forbidden原因及故障模拟

1) nginx配置文件里不配置默认首页参数或者首页文件在站点目录下没有

1
index index.php index.html index.htm;

问题模拟示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[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 -sreload
[root@www extra]# tail -1 /etc/hosts
10.0.0.8 www.etiantian.orgbbs.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:11index.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.php index.html index.htm。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@www extra]# cat www.conf
#www virtualhost by oldboy
   server {
       listen       80;
        server_name www.etiantian.org;
       location / {
           root   html/www;
           index  index.htmlindex.htm; #<==配置首页文件配置
       }
       access_log off;
   }
[root@www extra]# ../../sbin/nginx -sreload
[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

提示:以上1)和2)有一个参数可以解决这个问题就是:

1
2
3
4
5
6
7
8
9
10
11
12
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;
   }

效果如下:

3)站点目录或内部的程序文件没有Nginx用户访问权限。

1
2
3
4
5
6
7
8
9
[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等权限控制,导致客户端没有没权限访问。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[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 -sreload
[root@www extra]# curl -I -s 10.0.0.8|head-1
HTTP/1.1 403 Forbidden

Nginx 403 forbidden多种原因及故障模拟重现的更多相关文章

  1. nginx 403 forbidden 二种原因

    nginx 403 forbidden 二种原因 引起nginx 403 forbidden有二种原因,一是缺少索引文件,二权限问题.今天又遇到 了,顺便总结一下. 1,缺少index.html或者i ...

  2. [转]权限问题导致Nginx 403 Forbidden错误的解决方法

    权限问题导致Nginx 403 Forbidden错误的解决方法 投稿:junjie 字体:[增加 减小] 类型:转载 时间:2014-08-22 这篇文章主要介绍了权限问题导致Nginx 403 F ...

  3. Nginx 403 forbidden的解决办法

    Nginx 403 forbidden的解决办法. 常见的,引起nginx 403 forbidden有二种原因,一是缺少索引文件,二权限问题. 1.缺少index.html或者index.php文件 ...

  4. 2020centos解决“nginx 403 Forbidden"错误的故事

    最近折腾一个放在日本的vps,网速还可以,就是经常丢包. 原本配置了Nginx的做代理服务器,我想反正服务器空闲者,放点我自己的资料 配置了一个静态html文件,方便自己随时查看 结果,不停的修改ng ...

  5. 一个奇葩常见的问题 nginx 403 forbidden错误

    今天安装dedecms,配置Nginx,然后生成一键生成静态页面,然后就没有然后了,所有栏目页面都显示nginx 403 forbidden. 一般来说nginx 的 403 Forbidden er ...

  6. Nginx 403 forbidden原因及故障模拟重现(转载)

    这篇文章是转载过来的一篇文章,觉得不错,因此做个记录. 访问Nginx出现状态码为403 forbidden原因及故障模拟 1) nginx配置文件里不配置默认首页参数或者首页文件在站点目录下没有 i ...

  7. nginx “403 Forbidden” 错误的原因及解决办法

    nginx 的 403 Forbidden errors 表示你在请求一个资源文件但是nginx不允许你查看. 403 Forbidden 只是一个HTTP状态码,像404,200一样不是技术上的错误 ...

  8. Nginx 403 Forbidden 解决方案 史上最靠谱

    原因 1. SELinux为开启状态(enabled) 查看SELinux的状态 sestatus 如果不是 disables , 需要 vi /etc/selinux/config 将以前的 SEL ...

  9. nginx 403 forbidden

    2018年3月9日14:11:59 总结一下: 1. 查看目录或者文件是否是可读可执行 2. 查看nginx配置的server -> location -> index指令, 看其列出的入 ...

随机推荐

  1. Voltage Keepsake CodeForces - 801C (思维+二分)

    题目链接 这是一道很棒的二分题. 思路: 首先先思考什么情况下是可以无限的使用,即输出-1. 我们思考可知,如果每一秒内所有设备的用电量总和小于等于充电器每秒可以充的电,那么这一群设备就可以无限使用. ...

  2. JAVA面对对象(三)——Super、static、final关键字

    Super 使用super关键字可以直接调用父类中的构造方法.属性.普通方法 super调用父类构造方法的操作,与this调用构造方法一样,语句必须放在子类构造方法的首行 public class P ...

  3. jmeter简单录制脚本

    1 创建HTTP请求默认值. --添加线程组:右击"测试计划"→添加→Threads(Users)→线程组,建议重命名线程组增强可读性. --添加HTTH请求默认值:右击" ...

  4. 如何判断使用的是Lodop还是C-Lodop

    Lodop和C-Lodop混合部署的时候,LodopFuncs.js里面有自动判断当前浏览器使用什么,支持np插件的就会使用Lodop,不支持插件方式的会使用C-Lodop,可以通过预览窗口左上角图标 ...

  5. async中await是干啥的,用不用有什么区别?

    最近在研究异步编程,用的async await task啥的,但是都这几个概念很模糊,还有不太清楚await是干啥的,task又是干啥的,用不用await有什么区别,他们三个之间的联系是什么? tas ...

  6. BZOJ1163&BZOJ1339[Baltic2008]Mafia——最小割

    题目描述 匪徒准备从一个车站转移毒品到另一个车站,警方准备进行布控. 对于每个车站进行布控都需要一定的代价,现在警 方希望使用最小的代价控制一些车站,使得去掉这些车站后,匪徒无法从原定的初始点到达目标 ...

  7. Educational Codeforces Round 3 C. Load Balancing

    C. Load Balancing time limit per test 2 seconds memory limit per test 256 megabytes input standard i ...

  8. MT【207】|ax^2+bx+c|中判别式$\Delta$的含义

    已知$a,b\in R^+,a+b=2$且对任意的$x\in R$,均有$|2x^2+ax-b|\ge|x^2+cx+d|$则$\dfrac{d-4c}{cd}$的最小值______ 提示:注意到$\ ...

  9. 洛谷 P1053 音乐会的等待 解题报告

    P1823 音乐会的等待 题目描述 \(N\)个人正在排队进入一个音乐会.人们等得很无聊,于是他们开始转来转去,想在队伍里寻找自己的熟人.队列中任意两个人\(A\)和\(B\),如果他们是相邻或他们之 ...

  10. poj1236/luogu2746 Network of Schools (tarjan)

    tarjan缩点后,第一问答案显然是入度为零的点得个数第二问:考虑到 没有入度或出度为0的点 的图强连通, 所以答案就是max{入度为零的个数,出度为零的个数} (把出度为零的连到入度为零的点,然后剩 ...