在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
字段可以被伪造。然而,对于大多数场景来说,这种配置已经足够有效。