Nginx防盗链配置

网站写文章时,可能为了增加文章的生动性,我们常常加入图片来说明,或者更加直观的展示的问题。但是图片被其他网站乱应用,可能会增加额外流量的费用。所以我们为了避免这种情况,就给网站加上图片防盗链功能。

网站是用的 Nginx,所以我们介绍在 Nginx 如何配置网站图片的防盗链。防盗链功能是基于 HTTP 协议的 Referer 机制,通过 referer 跟踪来源,对来源就行对比。

配置代码

location ~* (gif|jpg|jpeg|png)$ {
    expire 30d;
    valid_referers none blocked *.sin2.cn;
    if ($invalid_referer) {
        rewrite ^/ https:://www.sin2.cn
    }
}

代码解释

第一行:匹配对应的图片类型

第二行:属于配置文件中location作用域中原有的图片缓存时间配置

第三行:valid_referers 指定资源访问通过以下几种方式为合法,可理解设置的白名单。

关键字描述
none直接通过URL访问,无referer值的情况
blockedreferer值被防火墙修改
servername指定资源在合法的域名白名单中可以被引用,支持*通配符,多个域名使用空格符分开

第四行:匹配不到对应的referer来源域,则跳转到配置的地址上去

注意

  1. 不能完全的防止图片被使用,可以通过其他方式得到图片
  2. 站点使用了CDN,nginx配置的防盗链可能不会起作用,可以在CDN管理平台配置。
添加新评论