在Nginx中配置防盗链,主要是通过检查HTTP请求头中的Referer字段来实现的。以下是一个基本的防盗链配置示例:
打开Nginx配置文件,通常位于/etc/nginx/nginx.conf或/etc/nginx/sites-available/your_domain.conf。
在server块中添加以下配置:
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
valid_referers none blocked your_domain.com *.your_domain.com;
if ($invalid_referer) {
return 403 "Forbidden";
}
}
这里的配置解释如下:
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$:匹配所有以.jpg、.jpeg、.png、.gif、.ico、.css和.js结尾的文件请求。valid_referers none blocked your_domain.com *.your_domain.com;:设置允许的Referer值。none表示不允许任何Referer,blocked表示允许被Nginx阻止的Referer,your_domain.com和*.your_domain.com表示允许来自你自己的域名及其子域名的请求。if ($invalid_referer) { return 403 "Forbidden"; }:如果Referer不在允许的范围内,则返回403 Forbidden状态码。保存配置文件并退出。
重新加载Nginx配置以使更改生效:
sudo nginx -t # 检查配置文件语法是否正确
sudo nginx -s reload # 重新加载配置文件
现在,Nginx将检查所有匹配的静态文件请求,并根据配置的防盗链规则拒绝不符合要求的请求。请注意,这种方法并不是绝对安全的,因为Referer字段可以被伪造。然而,对于大多数场景来说,这种配置已经足够有效。