nginx 配置Referer防盗链

  location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ {
            valid_referers none blocked server_name *.jingxialai.com www.jingxialai.com/shop/ ~\.google\.;
            if ($invalid_referer) {
               return 403;
               #rewrite ^.*$ https://www.google.com;
            }
  }

none:为空没有referer也可以直接访问
blocked:referer没有值也可以访问;请求头Referer字段不为空(即存在Referer),但是值被代理或者防火墙删除了,这些值不以“http://”或“https://”开头,通俗点说就是允许“http://”或"https//"以外的请求。比如Referer为http://www.baidu.com则会拦截,若是Referer为www.baidu.com或wss://www.baidu.com则不会拦截
server_name:nginx配置的域名,有的可能是server_names
www.jingxialai.com/shop/:从这个页面的请求都可以访问
*.jingxialai.com:域名正则可以访问
~.google.:只要识别到有google正则都可以访问

 

一般配置为

valid_referers xx.xxxx.com;
if ($invalid_referer) {
        return 403;
}

为空啥的都不允许访问。

posted @ 2023-03-07 16:54  河在谈  阅读(848)  评论(0编辑  收藏  举报