Nginx报错403的原因及解决办法

话说配置全都正确但Nginx报403这种情况应该是人人都经历过的吧。
首先,我们先来了解一下403这个状态码的含义:
403错误,表示资源不可用。服务器理解客户的请求,但拒绝处理它,通常由于服务器上文件或目录的权限设置导致的WEB访问错误

如果你遇到了403错误可以按照以下方法排查:

* 权限问题

检查根目录权限是否配置正确
一般这种错误是可以在日志中找到的,如果权限配置有问题,你会看到形如下面的字符

open() "/datatest/r.txt" failed (13: Permission denied), client: 192.168.1.208, server: www.web1.com, request: "GET /r.txt HTTP/1.1", host: "www.test.com"

chmod [option] 目录名
chmod -R 777 /data/test
关于chmod的详细用法请参考:http://www.cnblogs.com/adolfmc/p/5898115.html

* 索引配置问题

所谓索引就是Nginx配置文件中的index。

server {
          listen       80;
          server_name  localhost;
          index  index.php index.html;
          root  /data/test/;
          }

当访问该站点的时候,Nginx会按照索引的先后顺序在根目录中查找文件。如果这个上文配置中的index.php,index.html,那么nginx就会返回403 Forbidden。

最后运行nginx -s reload就大功告成啦!

提交