盗链指的是其他网站不经过你的许可直接通过链接使用你网站上的资源,从而消耗你的带宽和资源,这不仅会影响你网站的性能,还有可能会导致资源被滥用。
简单来说,直接从你的网站上右键复制链接,粘贴到他自己的网站使用,实际请求的是你的服务器。
server {
# 监听端口及其他配置项......
# 静态资源服务配置
location /server/upload/ {
alias /root/skydong.comf-upload/upload/images/;
valid_referers none *.skydong.com *517686.com;
if ( $invalid_referer ) {
# 如不满足,指定访问如下资源
rewrite ^/ https://www.skydong.com/res/deny1.jpg;
return 403;
}
}
# 其他配置项......
}
语法说明
valid_referers none | blocked | server_names | strings ….;
--none:允许没有http_refer的请求访问资源,检测 Referer 头域不存在的情况,则可以访问。
--blocked:检测 Referer 头域的值被防火墙或者代理服务器删除或伪装的情况。
--server_names :只允许指定ip/域名来的请求访问资源(白名单)。可设置一个或多个 URL ,检测 Referer 头域的值是否是这些 URL 中的某一个。在生产环境中尽量使用域名,不使用ip。
盗链示意图
以上就是Nginx实现静态资源防盗链的方案