Nginx防盗链

1)修改vhost/blog.moonsbird.com.conf

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ {
valid_referers none blocked *.moonsbird.com moonsbird.com;
if ($invalid_referer) {
#rewrite ^/ http://blog.moonsbird.com;
return 403;
}
expires 30d;
access_log off;
}

2)真正意义上的防盗链

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ {
valid_referers *.moonsbird.com moonsbird.com;
if ($invalid_referer) {
#rewrite ^/ http://blog.moonsbird.com;
return 403;
}
expires 30d;
access_log off;
}

3)两者的区在于有没有 none blocked

第一种方法有,在浏览器上输入图片地址可访问

第二种方法没有, 在浏览器上不可访问

    • valid_referers语法:valid_referers [none|blocked|server_names] …
      默认值:no
      使用字段:server, location
      这个指令在referer头的基础上为 $invalid_referer 变量赋值,其值为0或1。
      可以使用这个指令来实现防盗链功能,如果valid_referers列表中没有Referer头的值, $invalid_referer将被设置为1(参照前例)。
      参数可以使如下形式:

       

      • none意为不存在的Referer头
      • blocked意为根据防火墙伪装Referer头,如:“Referer: XXXXXXX”。
      • server_names为一个或多个服务器的列表,0.5.33版本以后可以在名称中使用“*”通配符。

      变量$invalid_referer不是nginx的系统变量,是http协议中的

posted @   xiaobingch  阅读(228)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示