Nginx配置防盗链
首先上代码
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ {
valid_referers none blocked xx.xxxx.com *.xxx.com;
if ($invalid_referer) {
return 403;
}
expires 30d;
access_log off;
}
下面开始详细解释:
配置语法: valid_referers none | blocked | server_names | string ...
;none
“Referer” 来源头部为空的情况。blocked
“Referer”来源头部不为空,但是里面的值被代理或者防火墙删除了,这些值都不以http://或者https://开头。server_names
“Referer”来源头部包含当前的server_names(当前域名)。arbitrary string
任意字符串,定义服务器名或者可选的URI前缀.主机名可以使用*开头或者结尾,在检测来源头部这个过程中,来源域名中的主机端口将会被忽略掉。regular expression
正则表达式,~表示排除https://或http://开头的字符串。
语法介绍完毕。
valid_referers
是用来配置域名白名单的,按照上面的语法进行配置。$invalid_referer
如果来源域名不在valid_referers
这个列表中,那么$invalid_referer等于1。
return 403;
是直接返回403。
这几句话的意思是白名单是 xxxx ,出了白名单的域名之外的请求,都返回403。