nginx如何实现配置静态资源服务器及防盗链
作者:chenglei1208
首先我们聊聊什么是图片盗链?
盗链指的是其他网站不经过你的许可直接通过链接使用你网站上的资源,从而消耗你的带宽和资源,这不仅会影响你网站的性能,还有可能会导致资源被滥用。
简单来说,直接从你的网站上右键复制链接,粘贴到他自己的网站使用,实际请求的是你的服务器。
之前我们分享过服务端实现静态资源防盗链的方式,前置文章:其实,图片防盗链的实现如此简单
在文章结尾我们也留了一种方案,就是使用nginx实现防盗链,服务端方案适合小型且并发不高的网站、性能一般,而Nginx专门为性能优化而开发,性能是最重要的考量,非常注重效率,Nginx能够支持高达50000个并发连接响应数。
今天我们就来说说nginx如何实现配置静态资源服务器及防盗链实现
nginx配置静态资源服务器及防盗链
首先准备一张防盗链提示图片(来源于百度)
盗链提示图片
言归正传
1、在nginx安装目录的html下创建res目录
将上述图片上传至此,可以直接访问到,将此图片作为盗链提示
2、配置静态资源服务器
小白的图片资源存放于服务器的/root/cxs-sys-currency-upload/upload/images目录下
server { # 监听端口及其他配置项...... # 静态资源服务配置 location /server/upload/ { alias /root/cxs-sys-currency-upload/upload/images/; valid_referers none *.cxs.plus cxs.plus; if ( $invalid_referer ) { # 如不满足,指定访问如下资源 rewrite ^/ https://www.cxs.plus/res/1.jpg; return 403; } } # 其他配置项...... }
语法说明
valid_referers none | blocked | server_names | strings ….;
--none:允许没有http_refer的请求访问资源,检测 Referer 头域不存在的情况,则可以访问。
--blocked:检测 Referer 头域的值被防火墙或者代理服务器删除或伪装的情况。
--server_names :只允许指定ip/域名来的请求访问资源(白名单)。可设置一个或多个 URL ,检测 Referer 头域的值是否是这些 URL 中的某一个。在生产环境中尽量使用域名,不使用ip。
3、重新启动nginx后,使用postman进行测试
添加Referer为www.cxs.plus测试,可以访问
使用其他域名测试,返回盗链提示图片
结语
以上就是Nginx实现静态资源防盗链的方案,快去给你的系统加上吧!
更多关于Nginx配置静态资源防盗链 的资料请关注脚本之家其它相关文章!