hugo-teek is loading...

防盗链

最后更新于:

实战-Nginx实现图片防盗链-20241204(测试成功)

目录

[[toc]]

[toc]

背景

自己在浏览其它网站文章时,发现这个小伙伴的网站文章里图片的url竟然还是我的网址,哈哈🤣

这怎么能够被允许?😁

果断给自己图床加上防盗链,此时就nice了

只有自己网站才能引用自己图床里的图片,别人网站是无法直接引用的。😂

推荐:一般在持久化网上文章时,最好把图片都下载起来,不然那天源站图片迁移了,那么自己的文章不是废了😜(友情提示:typora可以实现批量下载图片并上传到自己图床功能哦,很不错)

前言

什么是图片盗链

首先我们聊聊什么是图片盗链?

盗链指的是其他网站不经过你的许可直接通过链接使用你网站上的资源,从而消耗你的带宽和资源,这不仅会影响你网站的性能,还有可能会导致资源被滥用。

简单来说,直接从你的网站上右键复制链接,粘贴到他自己的网站使用,实际请求的是你的服务器。

图片你直接在浏览器打开用可以,但是如果图片url出现在你的网站里(img标签里),将是不被允许的。

今天我们就来说说nginx如何实现配置静态资源服务器及防盗链实现。


防盗链效果:

案例:

2024年12月29日记录

https://www.peterjxl.com/Blog/statistics/#%E7%99%BE%E5%BA%A6%E7%BB%9F%E8%AE%A1

image-20241229173030483

这个网站的防盗链,我拷贝他的文章后,我typora本地图片也是显示不了的。。。

image-20241229172954511

1、准备一张防盗链提示图片

  • 首先准备一张防盗链提示图片(来源于百度)

图片下载地址:防盗链图片

下载后,将其重命名为1.png

  • 执行如下命令,并把防盗链图片上传到/FdangDaoLianImages/路径:
1[root@docusaurus-wiki res]# mkdir /FdangDaoLianImages
2[root@docusaurus-wiki res]# cd /FdangDaoLianImages/
3[root@docusaurus-wiki FdangDaoLianImages]# rz ##将防盗链图片1.png 上传到此路径
4rz waiting to receive.**[root@docusaurus-wiki FdangDaoLianImages]# ll
5total 152
6-rw-rw-rw- 1 root root 154676 Dec 15 06:26 1.png
  • 配置下nginx,让我们能访问到这个防盗链图片

vim /etc/nginx/conf.d/onedayxyy.cn.conf

1    location /error {
2        autoindex on; # 启用目录索引
3        alias /FdangDaoLianImages;
4        index index.html;   # 默认显示index.html文件,如果没有则列出目录内容
5    }

注意:此段代码是配置如下位置的

  • 重启服务:
1[root@docusaurus-wiki FdangDaoLianImages]# systemctl restart nginx
  • 验证:

https://onedayxyy.cn/error/1.png

2、配置nginx

  • 我的图床图片资源存放于服务器的/images目录下

vim /etc/nginx/conf.d/onedayxyy.cn.conf

具体代码:

image-20241205223257599

语法说明:

1valid_referers none | blocked | server_names | strings ….;
2
3--none:允许没有http_refer的请求访问资源,检测 Referer 头域不存在的情况,则可以访问。
4--blocked:检测 Referer 头域的值被防火墙或者代理服务器删除或伪装的情况。
5--server_names :只允许指定ip/域名来的请求访问资源(白名单)。可设置一个或多个 URL ,检测 Referer 头域的值是否是这些 URL 中的某一个。在生产环境中尽量使用域名,不使用ip。
  • 重启ngix服务
1systemctl restart nginx

3、验证

  • 导链的小伙伴网站此时已经废了哈哈🤣

https://hydoc.netlify.app/blog/VM-Network-IP

image-20241204060538636

image-20241204060603494

image-20241204060641154

  • 自己typora里图片是可以正常显示的

image-20241204060731974

  • 浏览器也是可以直接访问图片的

image-20241204060755366

扩展

允许某些域名能访问自己图床

案例:解决自己gitee仓库readme里图片被限制问题-2024.1.1(已解决)

问题现象

自己gitee使用了我自己的图床,发现被防盗链限制了。。。

image-20250101085147107

image-20250101085242444

但是有的图片没问题。。。

image-20250101085230616


解决办法

尝试在这里加上自己的gitee域名url,看下效果:

image-20250101085318739

1vim /etc/nginx/conf.d/onedayxyy.cn.conf
2
3*.gitee.com gitee.com
4
5systemctl restart nginx

image-20250101085637703


验证效果

哇,好了呢:😜

image-20250101085945791

已解决


提示

常见放行地址:

参考

https://blog.51cto.com/u_64214/8577766

关于我

我的博客主旨:

  • 排版美观,语言精炼;
  • 文档即手册,步骤明细,拒绝埋坑,提供源码;
  • 本人实战文档都是亲测成功的,各位小伙伴在实际操作过程中如有什么疑问,可随时联系本人帮您解决问题,让我们一起进步!

🍀 个人网站

image-20250109220325748

🍀 微信二维码

x2675263825 (舍得), qq:2675263825。

image-20230107215114763

🍀 微信公众号

《云原生架构师实战》

image-20230107215126971

🍀 csdn

https://blog.csdn.net/weixin_39246554?spm=1010.2135.3001.5421

image-20230107215149885

🍀 知乎

https://www.zhihu.com/people/foryouone

image-20230107215203185

最后

如果你还有疑惑,可以去我的网站查看更多内容或者联系我帮忙查看。

如果你有更好的方式,评论区留言告诉我。谢谢!

好了,本次就到这里了,感谢大家阅读,最后祝大家生活快乐,每天都过的有意义哦,我们下期见!

推荐使用微信支付
微信支付二维码
推荐使用支付宝
支付宝二维码
最新文章

文档导航