宝塔面板Nginx防盗链设置教程
宝塔面板Nginx防盗链设置图文教程,新手也能轻松搞定
如果你运营的网站提供了图片、视频或下载文件,就很容易被其他网站直接引用(俗称“盗链”)。
盗链会消耗你的服务器带宽和资源,却无法带来任何流量。
今天这篇教程专为零基础用户准备,帮你一步步在宝塔面板中完成 Nginx 防盗链配置,不再被白白占便宜。
开始之前,请确认这些前提
在动手操作前,请先检查以下三项是否满足:
- 你已经在宝塔面板中创建了站点,并且站点使用的是 Nginx 环境(Apache 环境不适用本方法)。
- 你拥有该站点的管理权限,可以进入“网站” > “设置” > “配置文件”。
- 了解自己的域名(例如
example.com)以及是否需要允许空 Referer 来源(比如用户直接从浏览器地址栏访问)。
如果你不确定当前环境是 Nginx 还是 Apache,可以在宝塔面板左侧“软件商店”中查看已安装的 Web 服务。
核心步骤:通过宝塔面板配置防盗链
1. 找到站点配置文件
登录宝塔面板,依次点击左侧菜单“网站”,找到你要设置防盗链的站点,点击右侧的“设置”按钮。
在弹出的窗口中,选择“配置文件”选项卡(通常位于最右边)。
2. 定位到 server 块,添加防盗链规则
在配置文件中找到 server { ... } 大括号。
我们通常将防盗链规则放在 server 块内部,靠近开头位置。
在下面示例中的位置加入以下代码(注释部分可省略):
# 防盗链配置
location ~* \.(jpg|jpeg|png|gif|bmp|webp|svg|ico|css|js|mp4|flv|zip|rar)$ {
valid_referers none blocked example.com yourdomain.com *.yourdomain.com;
if ($invalid_referer) {
return 403;
}
}
解释:
location ~* \.(jpg|jpeg|...)$:匹配要保护的资源后缀,你可以根据实际情况增删文件类型。valid_referers none blocked example.com yourdomain.com:none表示允许空 Referer(用户直接打开);blocked表示允许没有协议的 Referer(通常允许搜索引擎等);后面列出你允许引用的域名(记得替换成你自己的域名)。如果你不希望允许空 Referer,可以删除none。if ($invalid_referer) { return 403; }:当 Referer 不在允许列表中时,返回 403 禁止访问。
3. 保存并重启 Nginx
点击配置文件编辑框右上角的“保存”。
然后回到网站设置页面,点击顶部“服务”标签中的“重载配置”或“重启”按钮(推荐“重载配置”,不会中断现有连接)。
避坑指南:三个容易踩的坑
坑一:自己网站的资源也无法访问
如果你发现自己的网站图片都显示不了,通常是因为 valid_referers 中没有包含你自己的域名。
请确保已将当前站点的完整域名(包括 www 子域名)添加到规则中。
坑二:CDN 或反向代理导致 Referer 被篡改
如果你的网站启用了 CDN(如又拍云、七牛云),或者使用了 Nginx 反向代理,CDN 回源请求的 Referer 可能不是你原始域名的。
此时需要在 valid_referers 中加入 none 或者添加 CDN 的回源 IP。
更稳妥的做法是只在 CDN 层面设置防盗链。
坑三:误伤搜索引擎爬虫
搜索引擎(百度、谷歌)的爬虫通常会携带 Referer,但部分特殊爬虫可能不带。
如果你不希望影响 SEO,建议保留 none blocked,或者仅对图片、视频等非页面资源做严格限制。
效果验证:如何判断防盗链是否生效?
方法一:浏览器开发者工具
- 打开网站的一张图片,右键“在新标签页中打开”。
- 在浏览器地址栏直接访问该图片链接,如果防盗链配置正确但未允许
none,此时可能会看到 403 错误页面。 - 也可以在任意其他网站(例如在百度搜索页或任意论坛)插入你的图片链接,如果图片无法显示,说明防盗链生效了。
方法二:使用 curl 命令模拟 Referer
登录服务器的 SSH 终端(或宝塔面板的“终端”),执行以下命令:
# 使用错误的 Referer 访问图片,预期返回 403
curl -I -e "http://wrong-site.com" http://你的域名/图片路径.jpg
如果返回的 HTTP 状态码是 403,说明规则生效。
# 使用正确的 Referer 访问,预期返回 200
curl -I -e "http://你的域名" http://你的域名/图片路径.jpg
如果返回 200,说明正常用户访问不受影响。
写在最后
宝塔面板 Nginx 防盗链设置并不复杂,只需要在配置文件中添加几行规则,就能有效保护你的带宽和资源。
如果你在配置过程中遇到问题,优先检查域名是否正确拼写、是否有空格或中文符号,以及是否忘记了保存重载。
配置成功后建议定期检查日志,看看是否有异常的 403 请求。
希望这篇教程能帮你一步到位搞定防盗链。