您的位置:首页 >怎样在Nginx中设置防盗链
发布于2026-05-01 阅读(0)
扫一扫,手机访问
说到网站资源保护,防盗链是个绕不开的话题。简单来说,就是防止别人网站直接引用你的图片、视频等文件,白白消耗你的服务器带宽和流量。在Nginx里实现这个功能,主要靠的是ngx_http_referer_module模块。它就像一个门卫,专门检查每个访问请求的“介绍信”——也就是HTTP头里的Referer字段,从而决定是否放行。

具体怎么操作呢?跟着下面几步走,一个基础的防盗链屏障就能搭建起来。
首先,得找到Nginx的配置文件。它通常躺在/etc/nginx/nginx.conf或者/etc/nginx/conf.d/default.conf这样的路径下。用你熟悉的编辑器打开它就行。
接下来是关键步骤:在对应的server配置块中,加入防盗链规则。这里给一个清晰的示例:
server {
listen 80;
server_name example.com;
location / {
# 允许的Referer列表
valid_referers none blocked server_names *.example.com ~*.example.com;
# 如果Referer不在允许列表中,返回403 Forbidden
if ($invalid_referer) {
return 403 "Forbidden";
}
# 其他配置...
root /var/www/html;
index index.html index.htm;
}
}
这段配置里有两个核心指令需要理解:
valid_referers:它定义了“白名单”。none表示请求头中没有Referer字段(比如直接浏览器访问)的情况;blocked指Referer字段存在但被防火墙或袋里删除了值的情况;server_names则允许本服务器域名;后面的*.example.com和~*.example.com则用于允许特定域名及其子域名,后者还忽略了大小写。if ($invalid_referer):这是一个判断条件。当请求的Referer不在上面定义的“白名单”之内时,变量$invalid_referer的值会为“1”,此时Nginx就会直接返回403状态码和“Forbidden”提示,拒绝访问。改完配置先别急着生效,务必测试一下语法是否正确。在终端运行这条命令:
sudo nginx -t
如果一切顺利,你会看到类似这样的成功提示:
nginx: configuration file /etc/nginx/nginx.conf test is successful
测试通过后,就可以让新配置生效了。重新加载Nginx服务,而无需中断当前正在处理的连接:
sudo systemctl reload nginx
或者,你也可以使用Nginx自带的信号控制命令:
sudo nginx -s reload
完成以上四步,一个基础的Nginx防盗链功能就部署完成了。当然,这只是一个起点。你可以根据实际需求,灵活调整valid_referers的白名单规则,或者对非法引用者采取返回特定错误图片等更复杂的操作,让资源保护策略更加精准和严密。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
9