• Nginx 403 forbidden的解决办法


    以下是我的Nginx配置:

    user  root; 
    worker_processes  1;
    
    #error_log  logs/error.log;
    #error_log  logs/error.log  notice;
    #error_log  logs/error.log  info;
    
    #pid        logs/nginx.pid;
    
    
    events {
        worker_connections  1024;
    }
    
    
    http {
        include       mime.types;
        default_type  application/octet-stream;
    
        #access_log  logs/access.log  main;
    
        sendfile        on;
        #tcp_nopush     on;
    
        #keepalive_timeout  0;
        keepalive_timeout  65;
    
        #gzip  on;
    
        server {
            listen       80;
            server_name  localhost;
            #autoindex    on; #是否允许访问目录
    
            #charset koi8-r;
    
            #access_log  logs/host.access.log  main;
    
            location / {
                #root   html;
                root   /home/ftpuser/taotao; #自定义访问的根目录
                index  index.html index.htm;
                #autoindex    on; #是否允许访问目录
            }
    
            #error_page  404              /404.html;
    
            # redirect server error pages to the static page /50x.html
            #
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
    }

    解决办法一(不推荐)

    在nginx.conf配置文件对应的位置添加以下两句,表示使用root角色访问,并且允许访问目录。autoindex默认是off。可是这种方式不好,因为别人可以看到自己服务器的目录结构。

    user root;
    
    autoindex on; #是否允许访问目录

    注:配置完成之后需要重启nginx服务,方能生效。

    [root@localhost sbin]# ./nginx -s reload

    解决办法二(推荐)

    方法二的配置文件即为开篇所写的配置文件:

    user  root; 
    worker_processes  1;
    
    #error_log  logs/error.log;
    #error_log  logs/error.log  notice;
    #error_log  logs/error.log  info;
    
    #pid        logs/nginx.pid;
    
    
    events {
        worker_connections  1024;
    }
    
    
    http {
        include       mime.types;
        default_type  application/octet-stream;
    
        #access_log  logs/access.log  main;
    
        sendfile        on;
        #tcp_nopush     on;
    
        #keepalive_timeout  0;
        keepalive_timeout  65;
    
        #gzip  on;
    
        server {
            listen       80;
            server_name  localhost;
            #autoindex    on; #是否允许访问目录
    
            #charset koi8-r;
    
            #access_log  logs/host.access.log  main;
    
            location / {
                #root   html;
                root   /home/ftpuser/taotao; #自定义访问的根目录
                index  index.html index.htm;
                #autoindex    on; #是否允许访问目录
            }
    
            #error_page  404              /404.html;
    
            # redirect server error pages to the static page /50x.html
            #
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
    }

    按照上述配置文件配置完成之后重启nginx服务

    [root@localhost sbin]# ./nginx -s reload

    发现已经可以访问自定义根目录文件夹(/home/ftpuser/taotao)下面的具体文件了,但是访问根路径的时候还是显示403 forbidden的错误。

    这是因为在自定义访问的根目录下(/home/ftpuser/taotao)缺少nginx启动后默认访问的index.html文件,将index.html文件复制一份到根目录(/home/ftpuser/taotao)下即可正常访问了。

  • 相关阅读:
    根据时间进行条件筛选查询问题记录
    实体类中如何自动生成serialVersionUID
    MySql中的IFNULL、NULLIF和ISNULL用法
    Intellij IDEA运行报Command line is too long问题的解决
    百度搜索框搜索时显示或者隐藏历史搜索记录
    项目中引用其他的项目的模块运行时出现bean not be found
    MySQL中CONCAT()函数拼接出现NULL的问题
    String.contains(object o)报出空指针异常!
    uniapp 微信发送订阅消息
    python 定时任务apscheduler的使用
  • 原文地址:https://www.cnblogs.com/Dylansuns/p/7290824.html
Copyright © 2020-2023  润新知