Nginx 造成 403 forbidden 的几种原因?

本文由黑壳网原创

本文章来源nginx造成403 forbidden的几种原因?~黑壳网

壳叔搞笑段子~
老婆:“亲爱的,如果我再不减肥你会不会抛弃我?”

老公:“并不会。”

老婆:"亲爱的你真好!"

老公:"并不是,是我抛不动。"

今天不知道为什么,这几天后台更新一篇文章一直不能更新,也比较忙,没时间处理,就在今天自己动手处理了这个问题,问题是 403 Forbidden 大概能看的出来Forbidden 是禁止的意思,动手百度一下,我大概清楚是哪里出问题了。首先先排除tomcat,剩下就是端口转发服务出现问题,然后我在搜索一下 nginx 403 forbidden ,基本上就是说明nginx权限的问题。

简单说一下问题
nginx 的 403 Forbidden errors 表示你在请求一个资源文件但是nginx不允许你查看。
403 Forbidden 只是一个HTTP状态码,像404,200一样不是技术上的错误。
哪些场景需要返回403状态码的场景?
1.网站禁止特定的用户访问所有内容,例:网站屏蔽某个ip访问。
2.访问禁止目录浏览的目录,例:设置autoindex off后访问目录。
3.用户访问只能被内网访问的文件。
以上几种常见的需要返回 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、root授权
在/conf/nginx.conf头部加入一行

user root;

重启nginx,一般问题就解决了,壳叔比较懒~,所以默认采用了第二个方法。

黑壳博客 blog.bhusk.com

E-mail:keshu@bhusk.com

本文由 黑壳博客的壳叔 创作或转载,采用 知识共享署名 3.0 中国大陆许可协议 进行许可。

可自由转载、引用,但需署名作者且注明文章

留下你的脚步
推荐阅读