location ~ .*\.(gif|jpg|png|swf|flv)$ {
valid_referers none blocked www.test.com www.demo.net; if ($invalid_referer) { rewrite ^/ http://www.test.com/404.html; #return 404; }}第一行:gif|jpg|png|swf|flv
表示对gif、jpg、png、swf、flv后缀的文件实行防盗链第二行:www.test.com www.demo.net表示对www.test.com www.demo.net这2个来路进行判断if{}里面内容的意思是,如果来路不是指定来路就跳转到错误页面,当然直接返回404也是可以的。
nginx有个模块叫做ngx_http_referer_module,通过这个模块,可以很方便的做防盗链设置。
一般常用的方法是在server或者location段中加入: valid_referers none blocked www.mydomain.com mydomain.com; 其中none表示空的来路,也就是直接访问,比如直接在浏览器打开一个图片,blocked表示被防火墙标记过的来路,server_names也就是域名了。