Nginx站点目录及文件URL访问控制

一、根据扩展名限制程序和文件访问

利用Nginx配置禁止访问上传资源目录下的PHP、Shell、Perl、Python程序文件,这样用户即是上传了木马文件也没有办法执行,从而加强了网站安全。

<1>、配置Nginx,禁止解析指定目录下的指定程序

worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  www.etiantian.org;

        location ~^/images/.*\.(php|php5|sh|pl|py)$
                 {
                   deny all;
                  }
        location ~^/static/.*\.(php|php5|sh|pl|py)$
                 {
                   deny all;
                  }
        location ~^/data/(attachment|avatar)/.*\(php|php5)$         
                 {
                   deny all;
                  }
    }
}

Nginx站点目录及文件URL访问控制

<2>、Nginx下配置禁止访问*.txt和*.doc文件

worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  www.etiantian.org;

        location ~* \.(txt|doc)${
             if (-f $request_filename){
             root /data/www/www;
             #rewrite ...可以重定向到某个URL
             break;
             }
        }
        location ~* \.(txt|doc)${
             root /data/www/www;
             deny all
        }
    }
}

Nginx站点目录及文件URL访问控制

<3>、禁止访问指定目录下的所有文件和目录

Nginx站点目录及文件URL访问控制

禁止访问多个目录

Nginx站点目录及文件URL访问控制

禁止访问目录并返回指定的HTTP状态码

Nginx站点目录及文件URL访问控制

作用:禁止访问目录下的指定文件,或者禁止访问指定目录下的所有内容。

应用场景:对于集群的共享存储,一般是存放静态资源文件,所以可以禁止执行指定扩展名的程序。

列如:.php、.sh、.pl、.py