奶爸手上有一台阿里云香港的服务器,今天收到邮件说有18刀的预付费,登陆后台查看原来是流量包用完了,所以现在是流量按量付费。不用猜就知道是因为一直没有设置防盗链,图片流量跑太多了。
所以需要给nginx设置一个防盗链的规则。
Nginx设置防盗链的方法
在你虚拟主机的nginx配置文件里面插入对应的代码即可,完整代码如下
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { expires 30d; valid_referers none blocke *.域名.com *.baidu.com *.google.com; if ($invalid_referer) { rewrite ^/ https://另外一个网站/2019/07/18/ZjgUET.gif; } }
代码解释
上面的代码是直接在LNMP的虚拟机配置文件里面添加的,你如果也是LNMP用户应该能看到
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { expires 30d; }
上面这个内容,在这个基础上添加规则就行了。
valid_referers none blocke后面的值是允许访问图片,不拦截的域名。
rewrite ^/ 后面是别人网站防盗链显示的图片,这张图片不能直接放在你服务器,不然也会被盗链拦截,无法显示。
如果你还想添加其他防盗链内容,直接添加到gif|jpg|jpeg|png|bmp|swf里面就行了。
宝塔面板防盗链
宝塔面板防盗链有两种方法,一种方法就是像前面说的nginx防盗链一样,自己在宝塔面板的后台,网站,编辑网站配置,配置文件里添加nginx防盗链的代码。
另外一种方法就是直接在编辑网站的时候找到下方的防盗链,打开即可。
重启nginx服务
设置完毕后,需要重启一次nginx服务让他加载防盗链规则。
LNMP的话可以使用/etc/init.d/nginx restart或者直接lnmp restart重启即可。
宝塔面板的话,在软件商店,运行环境里面找到nginx,点击,然后服务里面点击重启即可。
参考资料:
http://nginx.org/en/docs/http/ngx_http_referer_module.html
http://www.ttlsa.com/nginx/nginx-referer/
图片加水印防盗链
当然,还有一种防盗链的方法是先不设置防盗链,而是给图片添加水印,让别人复制过去给你网站打广告,后期流量不够了或者觉得可以收网了的时候再开启防盗链,把防盗链的图片设置成你网站信息的图片,达到一个别人网站免费给你打广告宣传网站的目的。
如果你想给WordPress图片添加水印,可以参考下面的方法自动操作。