防盗链是指防止其他网站盗用我们的资源。在 NGINX 中,我们可以通过配置文件来设置防盗链。
解决方案:
1、设置 Access-Control-Allow-Origin
这是一个 CORS (Cross-Origin Resource Sharing)设置,允许跨域资源共享。
location / {
add_header Access-Control-Allow-Origin *;
}
2、设置 Referer
Referer 是 HTTP 头的一部分,表示请求是从哪个页面链接过来的。我们可以通过检查 Referer 值来判断请求是否来自我们自己的网站。
location / {
if ($http_referer !~* (www.example.com|localhost)) {
return 403;
}
}
3、设置 Sec-Fetch-Site
Sec-Fetch-Site 是一个安全相关的头,表示请求是从哪个站点发起的。
location / {
if ($http_sec_fetch_site != 'same-site') {
return 403;
}
}
4、设置 hotlinking 保护
location ~* \.(gif|jpg|jpeg|png)$ {
valid_referers none blocked server_names *.example.com;
if ($invalid_referer) {
return 403;
}
}
以上就是 NGINX 防盗链的一些常见方法,具体使用哪种方法取决于你的具体需求。