这篇文章是转载过来的一篇文章,觉得不错,因此做个记录。

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

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

 index index.php 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 -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。

 [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)有一个参数可以解决这个问题就是:

 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用户访问权限。

 [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 -sreload
[root@www extra]# curl -I -s 10.0.0.8|head -1
HTTP/1.1 403 Forbidden

提示:上述403问题并不是nginx才有,apache服务的Forbidden 403问题同样也是这几个问题导致的,只是参数细节略有区别而已,见http://oldboy.blog.51cto.com/2561410/581383    感谢oldboy同学的分享。

Nginx 403 forbidden原因及故障模拟重现(转载)的更多相关文章

  1. Nginx 403 forbidden多种原因及故障模拟重现

    访问Nginx出现状态码为403 forbidden原因及故障模拟 1) nginx配置文件里不配置默认首页参数或者首页文件在站点目录下没有 1 index index.php index.html  ...

  2. nginx 403 forbidden 二种原因

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

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

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

  4. Nginx 403 forbidden的解决办法

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

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

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

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

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

  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. mysql数据库中的存储引擎是什么意思呢

    需求描述: 在看mysql的内容,经常提到存储引擎,那么到底什么是存储引擎呢 在这里对于概念进行理解,记录下. 概念解释: 存储引擎(storage engine):存储引擎就是mysql中的一个组件 ...

  2. 微软Azure、谷歌GAE、亚马逊AWS比較

       谷歌Google App Engine 亚马逊AWS 微软Microsoft Azure 提供服 务类型 PaaS, SaaS Iaas, PaaS IaaS, PaaS, SaaS 服务间 ...

  3. python2.0 s12 day4

    python2.0 s12 day404 python s12 day4 TengLan回顾上节内容 05 python s12 day4 迭代器原理及使用 本节大纲介绍: 1.迭代器&生成器 ...

  4. python语言简介、解释器、字符编码介绍

    一.为什么要选择python作为学习语言: 各个语言的对比: C和python.java.C#等 C语言:代码编译得到机器码,机器码在处理器上直接执行,每一条指令控制cpu工作 其他语言:代码编译得到 ...

  5. hadoop程序MapReduce之MaxTemperature

    需求:求每年当中最高的温度 样本:temp.log 2016080623 2016072330 2015030420 输出结果:2016 30 2015 20 MapReduce分析设计: Mappe ...

  6. ubuntu安装TexturePicker

    TexturePacker网页:https://www.codeandweb.com/texturepackerTexturePacker下载页面:https://www.codeandweb.com ...

  7. option 选不中问题

    function appAndBuz(appName,buzName,areaCenterCode){ //appName,buzName下拉框的值start $.ajax({ type: " ...

  8. C、C++编程入口,常见的编程题

    1.设计一个从5个数中取最小数和最大数的程序. 2.#include<stdio.h> 3.int min(int a[],int i); 4.int max(int a[],int i) ...

  9. Delphi 单元

    单元(unit)是组成Pascal程序的单独的源代码模块,单元有函数和过程组成,这些函数和过程能被主程序调用.一个单元至少要有unit语句,interface,和implementation三部分,也 ...

  10. LeetCode——Best Time to Buy and Sell Stock III

    Description: Say you have an array for which the ith element is the price of a given stock on day i. ...