在搭建网站时,你是否遇到过别人直接引用你网站上的图片、视频或文件?这不仅会消耗你的服务器带宽,还可能带来安全风险。为了解决这个问题,Nginx 提供了一个非常实用的功能——Referer 检查。
本文将用通俗易懂的方式,带你一步步配置 Nginx 的 Referer 检查功能,实现防盗链,保护你的网站资源不被非法盗用。即使你是刚接触服务器配置的小白,也能轻松上手!
Referer(注意拼写是 Referer 而不是 Referrer)是 HTTP 请求头中的一个字段,用于标识当前请求是从哪个网页跳转过来的。例如,当用户从 A 网站点击链接跳转到 B 网站时,B 网站收到的请求中就会包含 Referer: https://a.com。
利用这个特性,我们可以在 Nginx 中设置规则:只允许来自自己网站的请求访问某些资源(如图片、CSS、JS 等),拒绝其他来源的请求。
要启用 Referer 检查,我们需要使用 Nginx 的 valid_referers 指令。下面是一个完整的配置示例:
server { listen 80; server_name yourdomain.com; location ~* \.(jpg|jpeg|png|gif|mp4|css|js)$ { valid_referers none blocked yourdomain.com *.yourdomain.com; if ($invalid_referer) { return 403; # 或者你可以返回一张“禁止盗链”提示图: # rewrite ^/.*$ /images/forbidden.png last; } }} location ~* \.(jpg|jpeg|png|gif|mp4|css|js)$:匹配所有以这些后缀结尾的静态资源文件(不区分大小写)。valid_referers:定义哪些 Referer 是合法的。 none:允许没有 Referer 的请求(比如用户直接在浏览器地址栏输入图片 URL)。blocked:允许 Referer 被防火墙或代理删除的情况(值非空但被隐藏)。yourdomain.com 和 *.yourdomain.com:允许来自你自己的主站和子域名的请求。$invalid_referer:如果请求的 Referer 不在 valid_referers 列表中,该变量为 true。return 403;:返回 403 禁止访问错误。你也可以选择重定向到一张提示图片。配置完成后,记得重新加载 Nginx:
sudo nginx -s reload
然后你可以这样测试:
<img src="https://yourdomain.com/image.jpg">虽然 Referer 检查是一种简单有效的Nginx安全设置手段,但它并非万无一失:
none 和 blocked。通过 Nginx 的 Referer 检查功能,你可以轻松实现基本的防盗链配置,有效防止他人盗用你的带宽和资源。这项技术是每个网站管理员都应该掌握的HTTP Referer验证基础技能。
希望这篇教程能帮助你理解并成功配置 Nginx Referer检查!如果你觉得有用,欢迎分享给更多朋友。
本文由主机测评网于2025-11-29发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://vpshk.cn/2025111225.html