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

nginx 的 403 Forbidden errors 表示你在请求一个资源文件但是nginx不允许你查看。
403 Forbidden 只是一个HTTP状态码,像404,200一样不是技术上的错误。
哪些场景需要返回403状态码的场景?

1.网站禁止特定的用户访问所有内容,例:网站屏蔽某个ip访问。
2.访问禁止目录浏览的目录,例:设置autoindex off后访问目录。
3.用户访问只能被内网访问的文件。

以上几种常见的需要返回 403 Forbidden 的场景。

由于服务器端的错误配置导致在不希望nginx返回403时返回403
Forbidden。

1.权限配置不正确

这个是nginx出现403 forbidden最常见的原因。

为了保证文件能正确执行,nginx既需要文件的读权限,又需要文件所有父目录的可执行权限。

例如,当访问/usr/local/nginx/html/image.jpg时,nginx既需要image.jpg文件的可读权限,也需要/,
/usr,/usr/local,/usr/local/nginx,/usr/local/nginx/html的可以执行权限。

解决办法:设置所有父目录为755权限,设置文件为644权限可以避免权限不正确。

2.目录索引设置错误(index指令配置)

网站根目录不包含index指令设置的文件。

例如,运行PHP的网站,通常像这样配置index

index  index.html index.htm index.php;

当访问该网站的时,nginx 会按照 index.html,index.htm ,index.php 的先后顺序在根目录中查找文件。如果这三个文件都不存在,那么nginx就会返回403 Forbidden。

如果index中不定义 index.php ,nginx直接返回403 Forbidden而不会去检查index.php是否存在。

同样对于如果运行jsp, py时也需要添加index.jsp,index.py到目录索引指令index中。

解决办法:添加首页文件到index指令,常见的是index.php,index.jsp,index.jsp或者自定义首页文件。

时间: 2024-09-30 04:35:29

nginx “403 Forbidden” 错误的原因及解决办法的相关文章

【转】nginx 499错误的原因及解决办法

本文给大家介绍了nginx 499错误的原因及解决办法,具体内容如下所示: 1.499网上的解释是客户端主动关闭了连接 在一个项目上传文件的时候,nginx log报499,关闭iptables就可以 2.从排除故障的方法来说 nginx->tomcat,问题就出在这两个上面 看nginx的请求是否在日志里面能发现,这次是post请求是499 看tomcat的日志,是否有异常 3.从网络层,应用层,从下至上排除 iptables和网络方面的问题 4.使用工具 tcpdump tcpdump -X

[转]"error while loading shared libraries: xxx.so.x" 错误的原因和解决办法

[转]"error while loading shared libraries: xxx.so.x" 错误的原因和解决办法 http://blog.csdn.net/sahusoft/article/details/7388617 一般我们在Linux下执行某些外部程序的时候可能会提示找不到共享库的错误, 比如: tmux: error while loading shared libraries: libevent-1.4.so.2: cannot open shared obje

Nginx报错403 forbidden (13: Permission denied)的解决办法

由于开发需要,在本地环境中配置了LNMP环境,使用的是Centos 6.5 的yum安装,安装一切正常,但是由于默认网站文件夹比较奇葩,于是把网站文件用mv命令移动到了新的目录,并相应修改了配置文件,并重启Nginx. 那么好,问题来了!本以为重启就OK了.居然报个“403 is forbidden“的错误..查看/var/log/nginx/error.log日志显示:xxx 403 forbidden (13: Permission denied)错误.我勒个去~ 引起nginx 403 f

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

今天安装dedecms,配置Nginx,然后生成一键生成静态页面,然后就没有然后了,所有栏目页面都显示nginx 403 forbidden. 一般来说nginx 的 403 Forbidden errors 表示你在请求一个资源文件但是nginx不允许你查看.403 Forbidden 只是一个HTTP状态码,像404,200一样不是技术上的错误.哪些场景需要返回403状态码的场景?1.网站禁止特定的用户访问所有内容,例:网站屏蔽某个ip访问.2.访问禁止目录浏览的目录,例:设置autoind

laravel部署在nginx 出现 nginx 403 forbidden 错误的处理

laravel部署在nginx 总是出现 nginx 403 forbidden 如果不是权限问题,也不是索引文件的问题.那就是,laravel的主目录指定错了.原来不能指定laravel程序的根目录.要指定在public目录. Nginx 服务器 location / { try_files $uri $uri/ /index.php?$query_string; } 版权声明:本文为博主原创文章,未经博主允许不得转载.

ERR_CONTENT_DECODING_FAILED错误的原因和解决办法

1. ERR_CONTENT_DECODING_FAILED错误的原因 这种错误通常发生于Http请求中的头部信息标识内容是gzip编码的,但实际上不是. 2. ERR_CONTENT_DECODING_FAILED错误的解决办法 办法一:关掉gzip编码设置 办法二:确保内容是真正经过gzip编码的

error while loading shared libraries: xxx.so.x" 错误的原因和解决办法

今天在执行一个protobuf程序时,提示error while loading shared libraries: libprotobuf.so.8: cannot open shared object file: No such file or directory错误.google了一下,是由于找不到lib这个文件. 解决办法: 一般我们在Linux下执行某些外部程序的时候可能会提示找不到共享库的错误, 比如: tmux: error while loading shared librari

Nginx 403 Forbidden错误的解决方法

解决方法是在nginx.conf配置文件中,配置 user root; 然后 sudo /usr/local/nginx/sbin/nginx -s reload 问题解决就解决了 原文地址:https://www.cnblogs.com/Hannibal-2018/p/11183800.html

访问网时出现403 Forbidden错误的原因:

1.你的IP被列入黑名单.2.你在一定时间内过多地访问此网站(一般是用采集程序),被防火墙拒绝访问了.3.网站域名解析到了空间,但空间未绑定此域名.4.你的网页脚本文件在当前目录下没有执行权限.5.在不允许写/创建文件的目录中执行了创建/写文件操作.6.以http方式访问需要ssl连接的网址.7.浏览器不支持SSL 128时访问SSL 128的连接..8.连接的用户过多,可以过后再试.9.在身份验证的过程中输入了错误的密码.Forbidden的意思就是被禁止的,就是说你没有权限访问此站.