Nginx及apache出现状态403问题的解决办法

403问题并不是nginx才有,apache服务的Forbidden 403问题同样也是这几个问题导致的,只是参数细节略有区别而已。下面以nginx为例:

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

     index index.php index.html index.htm;

问题模拟示例:

[root@web01 extra]# cat www.conf

#www virtualhost ceshi

   server {

       listen       80;

       server_name  www.etiantian.org;

       location / {

           root   html/www;

扫描二维码关注公众号,回复: 2175681 查看本文章

           #index  index.html index.htm;#<==注释首页文件配置

       }

       access_log off;

   }

[root@web01 extra]# /application/nginx/sbin/nginx -t

[root@web01 extra]# /application/nginx/sbin/nginx -s reload

[root@web01 extra]# tail -1 /etc/hosts

10.0.0.8 www.etiantian.orgbbs.etiantian.org blog.etiantian.org etiantian.org

[root@web01 extra]# ll ../../html/www/

总用量 4

-rw-r--r--. 1 root root 4 6月   8 13:03 index.html  #<==存在首页文件

[root@web01 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@web01 extra]# ../../sbin/nginx -sreload

[root@web01 extra]# rm -f ../../html/www/index.html #<==删除物理首页文件

[root@web01 extra]# curl -I -s 10.0.0.8|head -1

HTTP/1.1 403 Forbidden

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

autoindex on;

[root@web01 extra]# cat www.conf

#www virtualhost by ceshi

   server {

       listen       80;

       server_name  www.etiantian.org;

       location / {

           root   html/www;

           autoindex on; #<==当找不到首页文件时,会展示目录结构,这个功能一般不要用除非有需求。

       }

       access_log off;

   }

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

[root@web01 extra]# echo test >../../html/www/index.html

[root@web01 extra]# chmod 700../../html/www/index.html #<==设置700让nginx用户无权读取

[root@web01 extra]# ls -l ../../html/www/index.html

-rwx------ 1 root root 5 4月  17 17:15../../html/www/index.html

[root@web01 extra]# curl -I -s 10.0.0.8|head -1

HTTP/1.1 403 Forbidden #<==403错误

[root@web01 extra]# chmod 755../../html/www/index.html #<==设置755让nginx用户有权读取

[root@web01 extra]# curl -I -s 10.0.0.8|head -1

HTTP/1.1 200 OK #<==200 OK了

4、Nginx配置文件中设置allow、deny等权限控制,导致客户端没有没权限访问

[root@web01 extra]# cat www.conf

#www virtualhost by ceshi

   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@web01 extra]# curl -I -s 10.0.0.8|head -1

HTTP/1.1 200 OK #<==设置755让nginx用户有权读取

[root@web01 extra]# ../../sbin/nginx -sreload

[root@web01 extra]# curl -I -s 10.0.0.8|head -1

HTTP/1.1 403 Forbidden

猜你喜欢

转载自blog.csdn.net/qq_41816540/article/details/81022203
今日推荐