防盗链是一种通过检查 HTTP 请求头中的 Referer
字段来限制资源访问的技术,常用于保护图片、视频等静态资源不被其他网站直接引用。以下是防盗链的原理、配置步骤以及测试方法,帮助你快速配置和验证防盗链功能。
下是源码包安装的nginx 如果你是rpm 那么只有路径不一样可以跟着我路径来对比配置 (小白请绕道)
防盗链通过检查 HTTP 请求头中的 Referer
字段来判断请求来源:
Referer
字段),Nginx 会拒绝请求(返回 403 错误)。常见场景:
打开 Nginx 配置文件:
vim /usr/local/nginx/conf/nginx.conf
在 server
块中添加以下内容:
location ~* \.(gif|jpg|jpeg|png|bmp|ico)$ {
valid_referers none blocked yourdomain.com *.yourdomain.com;
if ($invalid_referer) {
return 403;
}
}
location ~* \.(gif|jpg|jpeg|png|bmp|ico)$
:.gif
、.jpg
等)。~*
表示正则表达式匹配,并且忽略大小写。valid_referers none blocked yourdomain.com *.yourdomain.com;
:none
:允许没有 Referer
字段的请求(如直接输入 URL 的访问)。blocked
:允许被代理或防火墙隐藏了 Referer
的请求。yourdomain.com
:允许来自 yourdomain.com
的请求。*.yourdomain.com
:允许来自 yourdomain.com
的所有子域名的请求。if ($invalid_referer)
:valid_referers
的规则,则变量 $invalid_referer
为 true
。return 403;
:在保存配置文件后,测试配置是否正确:
nginx -t
预期输出:
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
如果有错误,检查配置文件中的语法问题并修复。
重启 Nginx 使配置生效:
systemctl restart nginx
即使你的网页没有图片资源,你可以手动添加一个测试图片文件到 Nginx 的根目录,方便验证防盗链功能。
/usr/share/nginx/html/
或 /var/www/html/
),创建一个简单的图片文件:bash
复制
echo "Test Image" > /usr/share/nginx/html/test.jpg
2.访问测试图片:
http://yourdomain.com/test.jpg
)。.从其他来源测试引用:
<img src="http://yourdomain.com/test.jpg" />
curl -e "http://otherdomain.com" http://yourdomain.com/test.jpg
Nginx 应该返回 403 错误。
curl -e "http://smqnz.com" 192.168.14.111/123.png
可以访问
如果配置正确,
通过配置防盗链,可以有效保护网站的静态资源,防止带宽被恶意消耗。在实际应用中,可以根据业务需求调整匹配规则和允许的域名,进一步优化配置。如果你有其他关于 Nginx 防盗链的经验或问题,欢迎留言讨论,让我们一起学习与成长!
成功的路上没有捷径,只有不断的努力与坚持。如果你和我一样,坚信努力会带来回报,请关注我,点个赞,一起迎接更加美好的明天!你的支持是我继续前行的动力!"
"每一次创作都是一次学习的过程,文章中若有不足之处,还请大家多多包容。你的关注和点赞是对我最大的支持,也欢迎大家提出宝贵的意见和建议,让我不断进步。"
神秘泣男子
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有