nginx配置防盗链
1,先准备两台主机,一台主机存放一张图片,另外一台主机拿第一台主机的图片
我的主机ip分别为
192.168.110.129
192.168.110.130
2,本地host文件给两个ip分配本地域名
192.168.110.129 www.source.com
192.168.110.130 www.steal.com
3,192.168.110.129这台主机存放一张图片
如图:
最原始访问两台主机界面如图:
4,分别在两台主机文件添加图片:
192.168.110.129
访问效果如图:
192.168.110.130
添加图片如图
效果如图:
进行到这里,说明第二台主机成功盗用了第一台主机的图片
5,下面开始防盗:
使用命令打开,nginx.conf文件
查找:find / -name nginx.conf
vim /usr/local/nginx/conf/nginx.conf
增加如下代码:
location ~* \.(gif|jpg|png|jpeg)$ {
#alias /data/images/;此处是针对图片目录防止盗链,根据自行需要设置
expires 30d;
valid_referers *.source.com source.com;
if ($invalid_referer) {
rewrite ^/ http://ww4.sinaimg.cn/bmiddle/051bbed1gw1egjc4xl7srj20cm08aaa6.jpg;
#return 404;
}
}
解释
第一行: location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$
其中“gif|jpg|jpeg|png|bmp|swf”设置防盗链文件类型,自行修改,每个后缀用“|”符号分开!
第三行:valid_referers none blocked .source.com source.com;
“valid_referers none blocked" 其中"none" "blocked" 的意思分别是:
none代表没有referer;blocded代表有referer但是被防火墙或者是代理给去除了。
去除none blocked进行配置,实现完美防盗链
就是白名单,允许文件链出的域名白名单,自行修改成您的域名!.source.com这个指的是子域名,域名与域名之间使用空格隔开!
第五行:rewrite ^/ http://ww4.sinaimg.cn/bmiddle/051bbed1gw1egjc4xl7srj20cm08aaa6.jpg;
这个图片是盗链返回的图片,也就是替换盗链网站所有盗链的图片。这个图片要放在没有设置防盗链的网站上,因为防盗链的作用,这个图片如果也放在防盗链网站上就会被当作防盗链显示不出来了,盗链者的网站所盗链图片会显示X符号。
如果我们是文件需要防盗链下载,把第五行:
改成一个链接,可以是您主站的链接,比如把第五行改成:
rewrite ^/ http://www.xxx.com;
这样,当别人输入文件下载地址,由于防盗链下载的作用就会跳转到您设置的这个链接!
6,重启nginx服务
/usr/local/nginx/sbin/nginx -s reload
或service nginx reload
再次访问主机,效果如图
7,补充知识,防盗链的三种方式
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~