nginx缓存,防盗链,禁止访问资源

1.nginx缓存

1.1静态文件缓存
1.1.1示例1-------根据文件后缀:

location ~ .*.(htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma)$ {     expires   30d;  } 

或者

location ~ .*.(js|css)?$ {     expires   12h; } 

1.1.2示例2----------根据文件类型

location ~* .(js|css|jpg|jpeg|gif|png|swf)$ {     if (-f $request_filename) {         root /html/web/bbs;         expires 1d;         break;     } } 

1.1.3示例3-----------根据目录类型

location ~ ^/(images|javascript|js|css|flash|media|static)/ {     root /html/web;     expires 30d; } 

1.2http块与server块缓存配置
http块:

proxy_cache_path /tmp/cache levels=1:2 keys_zone=nuget-cache:20m max_size=50g inactive=168h; 
/path/to/cache  #本地路径,用来设置Nginx缓存资源的存放地址 levels          #默认所有缓存文件都放在同一个/path/to/cache下,但是会影响缓存的性能,因此通常会在/path/to/cache下面建立子目录用来分别存放不同的文件。假设levels=1:2,Nginx为将要缓存的资源生成的key为f4cd0fbc769e94925ec5540b6a4136d0,那么key的最后一位0,以及倒数第2-3位6d作为两级的子目录,也就是该资源最终会被缓存到/path/to/cache/0/6d目录中 key_zone        #在共享内存中设置一块存储区域来存放缓存的key和metadata(类似使用次数),这样nginx可以快速判断一个request是否命中或者未命中缓存,1m可以存储8000个key,10m可以存储80000个key max_size        #最大cache空间,如果不指定,会使用掉所有disk space,当达到配额后,会删除最少使用的cache文件 inactive        #未被访问文件在缓存中保留时间,本配置中如果60分钟未被访问则不论状态是否为expired,缓存控制程序会删掉文件。inactive默认是10分钟。需要注意的是,inactive和expired配置项的含义是不同的,expired只是缓存过期,但不会被删除,inactive是删除指定时间内未被访问的缓存文件 use_temp_path   #如果为off,则nginx会将缓存文件直接写入指定的cache文件中,而不是使用temp_path存储,official建议为off,避免文件在不同文件系统中不必要的拷贝 proxy_cache     #启用proxy cache,并指定key_zone。另外,如果proxy_cache off表示关闭掉缓存。 

server块中的location块设置如下:

proxy_cache nuget-cache; proxy_cache_valid 200 304 2m;#对200和304的文件2分钟过期 proxy_ignore_headers Set-Cookie Cache-Control;   #这句代码很关键,尤其要忽略set-cookie proxy_hide_header Cache-Control; proxy_hide_header Set-Cookie; proxy_cache_use_stale error timeout http_500 http_502 http_503 http_504; 
proxy_cache_use_stale增强站点容错能力 proxy_cache_purge缓存清理指令 

2.nginx防盗链

 #Preventing hot linking of images and other file types location ~* ^.+.(gif|jpg|png|swf|flv|rar|zip)$ {     valid_referers none blocked server_names *.chinarenservice.com https://www.baidu.com;     if ($invalid_referer) {     rewrite ^/http://www.xxx.com/images/default/logo.gif;     # return 403;   } } 

3.nginx禁止访问某些资源

3.1禁止访问*.txt 文件

location ~* .(txt|doc)$ {     if (-f $request_filename) {     root /html/test;     break;   } } 

3.2禁止访问某个目录

location ~ ^/(tomcat)/ {     deny all; } 

3.3禁止下载以点开头的文件:如 .freeke;.dat;.exe

location ~ /..+ {     deny all; } 

原文始发于:nginx缓存,防盗链,禁止访问资源

给TA打赏
共{{data.count}}人
人已打赏
学习笔记

一句命令激活您的windows/office

2018-7-26 9:28:00

学习笔记

利用DNS隧道免费上网

2018-10-30 23:46:52

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索