在 Linux 下使用 Nginx 防盗链(Referer 防盗链) 是非常常见的做法,主要用于防止别人盗用你的图片、视频、文件等资源。
下面按最常见用法 → 进阶用法给你说明。
只允许:
www.example.com)拒绝:
server {
listen 80;
server_name www.example.com;
location /images/ {
valid_referers none blocked www.example.com;
if ($invalid_referer) {
return 403;
}
}
}
none:允许无 Referer(直接访问)blocked:允许 Referer 被防火墙隐藏的情况www.example.com:允许的来源403location /images/ {
valid_referers none blocked www.example.com;
if ($invalid_referer) {
rewrite ^ /static/forbidden.png break;
}
}
location ~* \.(jpg|jpeg|png|gif|webp|mp4|zip)$ {
valid_referers none blocked www.example.com;
if ($invalid_referer) {
return 403;
}
}
valid_referers none blocked
www.example.com
img.example.com
cdn.example.com;
valid_referers ~\.example\.com$;
⚠️ 注意:正则必须写在最后,且以 ~ 开头
if ($remote_addr = "1.2.3.4") {
break;
}
如果你是:
要注意:
nginx -t
systemctl reload nginx
❌ 浏览器为空 Referer 被拦截
✅ 加上 none
❌ 微信 / APP 内访问失败
✅ 加 blocked
❌ HTTPS 页面引用 HTTP 资源
✅ 统一协议
如果资源非常重要,建议:
如果你愿意,可以告诉我:
我可以给你精准可用的配置。