网站图片被恶意盗链,流量被大量消耗,通过Nginx配置防盗链的全过程记录

2026-10-02 375
下载不了?请联系网站客服提交链接错误!
增值服务:
网站图片被恶意盗链,流量被大量消耗,通过Nginx配置防盗链的全过程记录
最近更新 2026年10月02日
资源编号 452

网站图片被恶意盗链,流量被大量消耗,通过Nginx配置防盗链的全过程记录

2026-10-02 IT专栏 0 375 百度已收录
温馨提示丨遇到问题请联系大师邦、随时解决各类问题!
增值服务:
¥ 0 大师币 开通VIP尊享优惠特权
立即下载 升级会员
详情介绍

客户在云南昆明市官渡区做鲜花批发,网站主要是展示各种鲜花的品种、价格和库存,图片特别多,每个品种都有好几张实拍图。那天客户发来消息说,这个月服务器流量超了,被扣了不少钱,问是不是访问量涨了。

登录服务器,用宝塔面板的流量监控看了一下,发现流量消耗确实比平时高了好几倍,但访问量并没有明显增长。这种情况通常是有人盗用了网站上的图片,把图片地址直接嵌到别的网站上,流量全从我们这边走。

确认盗链

在nginx访问日志里搜了一下图片的请求来源,找到几个Referer不是自己域名的记录,来源IP都是同一个,指向了一个陌生的网站。打开那个网站看了一眼,确实在大量引用客户网站上的鲜花图片,而且连图片地址都没改,直接用了原链接。

这种情况就是典型的盗链。对方网站自己不存图片,直接引用别人的图片地址,省了自己的存储和流量成本,把负担转嫁给了被引用的网站。

配置防盗链

解决办法是在nginx里配置Referer白名单,只允许自己的域名和搜索引擎的Referer来访问图片,其他来源直接拒绝。

在网站的nginx配置文件里加了一段:

location ~ .*\.(gif|jpg|jpeg|png|webp|bmp|swf)$ {
    valid_referers none blocked server_names
                   *.example.com
                   *.baidu.com
                   *.google.com
                   *.sogou.com
                   *.so.com;
    if ($invalid_referer) {
        return 403;
    }
    expires 30d;
    access_log off;
}

这段配置的意思是:只允许空Referer、被屏蔽的Referer、自己域名、以及主流搜索引擎的Referer来访问图片。其他来源一律返回403。

这里有个细节要注意:none和blocked这两个关键词不能少。none允许直接在浏览器地址栏输入图片URL访问,blocked允许Referer被防火墙或代理屏蔽的情况。这两个如果不加,用户直接访问图片地址会被拒绝,体验不好。搜索引擎的Referer也要加进去,不然百度、Google抓取图片的时候会被拦,影响图片搜索收录。

加了防盗链之后的效果

配置生效之后,再去看nginx日志,那些来自陌生域名的图片请求全部返回403,流量很快就降下来了。客户的服务器流量恢复到了正常水平,那个盗链的网站打开之后图片全裂了,没几天就把图片链接撤掉了。

顺手做的几个优化

趁着改nginx配置,顺便给客户的网站做了几个其他的优化:

一是给图片加了缓存时间。上面配置里的expires 30d就是让浏览器缓存图片30天,用户第二次访问的时候直接从本地读,不用再请求服务器。这个对鲜花批发网站来说很实用,客户群相对固定,经常来回看图片,加了缓存之后体验提升明显。

二是检查了图片大小。客户上传的鲜花图片都是手机直接拍的,一张好几兆,页面上加载特别慢。用工具批量压缩了一遍,转成WebP格式,图片体积减少了七成左右,页面打开速度提升了不少。

三是把图片切到了CDN上。客户图片多,全走服务器带宽压力大。切到CDN之后,全国各地的用户就近加载图片,速度更快,服务器的带宽消耗也降下来了。

客户那边的情况

客户在昆明官渡区做鲜花批发,客户群主要是各地的花店和婚庆公司,很多客户是通过网站看图选货然后下单。他说之前只知道有人会盗用文章,没想到图片也会被盗。这次流量超了之后才意识到这个问题。

他问以后怎么防止。我说防盗链配置加上之后,基本的盗链就挡住了。如果对方是那种特别执着的,可能会伪造Referer或者把图片下载到自己服务器上,那就没办法了。但大部分盗链都是图省事直接引用链接,加了防盗链基本都能拦住。

一点补充

防盗链配置有一个注意的地方:如果网站本身有多个子域名,或者和别的网站有合作关系需要互相引用图片,记得把对方的域名加到白名单里,不然合法引用也会被拦。

还有一点是如果网站用了CDN,防盗链最好也在CDN层面配置一份。CDN的节点缓存了图片之后,如果不做防盗链,别人还是能直接从CDN节点上拉取图片,流量照样消耗。阿里云CDN和腾讯云CDN都支持Referer防盗链配置,在控制台里设置一下就行。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

本站仅提供信息存储空间服务,所有资源均由注册用户上传,仅供学习参考,知识产权归属原作者所有。本站不保证内容的准确性、真实性和可靠性,因信赖任何信息而产生的风险由使用者自行承担。因线路故障、黑客攻击、病毒侵入等不可抗力造成的损失,本站不负任何责任。链接推荐的第三方网站内容,本站不保证其真实性、合法性,由此造成的损失由使用者自行承担。未经本站许可,不得盗链、盗用或仿造本站资源,否则本站保留追责权利。如有侵权,请联系我们,本站将在核实后三个工作日内处理。

大师邦 IT专栏 网站图片被恶意盗链,流量被大量消耗,通过Nginx配置防盗链的全过程记录 https://www.dashibang.com/archives/452

常见问题
  • 不能。本站资源仅供学习参考,请勿直接商用。因商用引起的版权纠纷,责任由使用者自行承担。介绍文章中的示例图片、字体通常不包含在下载包内,需另行购买。
查看详情
  • 多数是下载不完整,对比文件大小与网盘显示容量是否一致。建议用百度网盘软件或迅雷下载,不要用浏览器直接下载。排除后仍有问题,可联系客服。
查看详情
  • 联系客服并提供付款信息,客服会为您处理。
查看详情
  • 属虚拟商品,具有可复制性,一旦交付原则上不接受退款。 通常可退款:商品无法安装、与描述严重不符、重复扣款。 通常不退:因个人原因不想要了、已被下载或激活使用、环境不兼容、超出申请期限。 建议付款前仔细阅读商品说明,确认是您需要的资源再下单。
查看详情
  • 通过官网在线客服、底部“联系我们”页面提交工单,或发邮件至官方邮箱。提交时附上订单号和问题截图。
查看详情
  • 联系我们客服,我们会安排人专门处理,留好联系方式,找到第一时间通知您!
查看详情

相关文章

评论
暂无评论
在线客服

为您解决烦忧 - 工作时间 第一时间解决