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;
}
}
}
<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
}
}
}
<3>、禁止访问指定目录下的所有文件和目录
禁止访问多个目录
禁止访问目录并返回指定的HTTP状态码
作用:禁止访问目录下的指定文件,或者禁止访问指定目录下的所有内容。
应用场景:对于集群的共享存储,一般是存放静态资源文件,所以可以禁止执行指定扩展名的程序。
列如:.php、.sh、.pl、.py