nginx服务器配置图片防盗链nginx.conf设置图片防盗链nginx图片盗链
今天说下图片防盗链,实现nginx服务器图片防盗链是根据访问的来源判断的,根据图片来源来实现,但是只能先限制基本的图片盗用,无法防止图片采集。
nginx的防盗链或者准确的说是防止非指定域名访问。
nginx防盗链的代码配置,使用nginx location进行图片匹配,匹配到图片后进行来源Referer的判断,如果是不是本站就返回403或图片。
nginx的配置文件/usr/local/nginx/conf/nginx.conf中匹配图片的代码:
location ~ .*\.(gif|jpg|jpeg|png|bmp)$ { expires 7d; }
在上面的代码中增加防盗链判断代码,使nginx对非本站引用的资源拒绝显示:
location ~ .*\.(gif|jpg|jpeg|png|bmp)$ { expires 7d; valid_referers none blocked server_names *.baidu.com *.google.com; #valid_referers server_names *.baidu.com *.google.com; #Referer不能为空 if ($invalid_referer) { rewrite ^/ https://ioozu.com/static/images/no_call_file.jpg; #return 403; } }
valid_referers none blocked 设置来源Referer来自本站或Referer为空
if ($invalid_referer){} 检查是否存在指定的Referer白名单,不存在就返回指定图片或403
修改后重启nginx生效。
nginx的配置文件/usr/local/nginx/conf/nginx.conf中匹配图片的代码:
location ~* \.(gif|jpg|png|bmp)$ { valid_referers none blocked *.ioozu.com server_names ~\.google\. ~\.baidu\.; if ($invalid_referer) { return 403; rewrite ^/ https://ioozu.com/403.jpg; } }
以上所有来至ioozu.com和域名中包含google和baidu的站点都可以访问到当前站点的图片,如果来源域名不在这个列表中。
那么$invalid_referer等于1,在if语句中返回一个403给用户,这样用户便会看到一个403的页面,如果使用下面的rewrite,那么盗链的图片都会显示403.jpg。
如果用户直接在浏览器输入你的图片地址,那么图片显示正常,因为它符合none这个规则。
点击链接加入群聊三群:751529538
点击链接加入群聊二群:376877156
点击链接加入群聊【路由器交流群:622891808已满】
本站附件分享,如果附件失效,可以去找找看
饿了么红包