Nginx配置图片防盗链规则

宝塔和LNMP环境下Nginx图片防盗链的设置方法

奶爸手上有一台阿里云香港的服务器,今天收到邮件说有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图片添加水印,可以参考下面的方法自动操作。

Scroll to Top