侧边栏壁纸
  • 累计撰写 56 篇文章
  • 累计创建 59 个标签
  • 累计收到 7 条评论

nginx配置referer防盗链

时间这孩子很诚实
2022-03-23 / 0 评论 / 0 点赞 / 73 阅读 / 750 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2022-03-28,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

背景:防止第三方引用链接访问我们的图片,消耗服务器资源和网络流量,我们可以在服务器上做防盗链限制。

  • 实现防盗链的方式有两种:refer方式和签名方式。

refer方式实现防盗链

工作模块:ngx_http_referer_module。

作用变量:$invalid_referer,全局变量。

配置域:server, location

配置:

upstream halo{
	server ip:8090;
}

server {
   listen 443;
   server_name linyc.com.cn;
   
   # 配置自己的拦截规则
   location ~*\.(gif|jpg|jpeg|png|bmp|swf)$ {
 			proxy_pass http://halo;
        expires 30d;
        valid_referers none blocked *.linyc.com.cn ~\.google\. ~.baidu\.;
        if ($invalid_referer) {
            #return 403;
            rewrite ^/https://cdn.jsdelivr.net/gh/qinhua/cdn_assets/img/robber.jpg;
        }
      }
   }
   
expires:控制页面资源在浏览器缓存的时间
  expires 30s;   #缓存30秒
  expires 30m;  #缓存30分钟   
  expires 2h;     #缓存2小时
  expires 30d;    #缓存30天
valid_referers: 指定资源访问是通过以下几种方式为合法,即白名单。
none:允许缺失的头部访问。
blocked:允许referer没有对应值的请求。
server_names:若referer站点域名与server_name中本机配的域名一样允许访问。

测试:站点图片复制地址
image
浏览器访问地址 shift + F5强刷
image-1648021067305
输入地址自动跳转到配置的rewrite

0

评论区