Nginx图片防盗链配置实例

做运维的朋友经常会有一些烦恼,比如网站总是被人抄袭,比如网站总是被人引用上面的图片,虽然一张图两张图,并不耗费很多流量,但一旦引用的人多了,这个还是比较废流量的。

防盗链就是禁止其他网站引用自己网站资源而做的一系列设置,优点就不需要说了,绝多数就是防止资源浪费,特别是有宽带、流量限制的空间如果不做一些 限制可能就光引用自己网站图片、视频等等资源可能会消耗很大一部分流量。本文就简单的说一下在nginx服务器上如何做防盗链设置。

nginx防盗链代码

第1步:下载nginx网站配置文件。

有些网友可能是直接到服务器中使用vi或ee编辑器,另外网站配置有些可能是在nginx.conf文件中或是在vhost目录下,具体要看nginx.conf文件是如何配置的了。

第2步:添加以下代码,并保存。

代码如下:
location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$ {
            expires 30d;
            access_log off;
            valid_referers none blocked *.web100.cc web100.cc *.youdao.com *.google.cn *.google.com *.google.com.tw *.google.com.sg *.google.com.hk image.soso.com bing.com cn.bing.com image.baidu.com;
            if ($invalid_referer){
                rewrite ^/ http://jb51.net/images/return.gif;
            }
        }

第3步:把保存网站配置文件上传并覆盖,到终端执行

/etc/init.d/nginx reload重新启动nginx即可生效。

因为系统不同nginx安装目录可能也不完全相同,简单的就说是重新启动nginx服务即可。

nginx防盗链代码说明:

代码如下:
location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$ {
    expires 30d;#在客户浏览器缓存30天
    access_log off; #以上扩展名文件(gif|jpg|jpeg|png|bmp|swf)不写入日志文件中。
    valid_referers none blocked *.web100.cc web100.cc jb51.net *.youdao.com *.google.cn *.google.com *.google.com.tw *.google.com.sg *.google.com.hk image.soso.com bing.com cn.bing.com image.baidu.com;
    #valid_referers none blocked允许访问的域名站点,后台就是跟着域名多个域名空格隔开。
    #none 匹配没有Refer的访问,简单的说就是直接用URL访问这些扩展名的资源。
    #blocked 支持域名前缀。
    #除了允许直接访问的域名外,其他域名直接访问就直接显示下面的这种图片。
    if ($invalid_referer){
        rewrite ^/ http://jb51.net/images/return.gif;
    }

这样设置过后,别人想要引用你网站里面的图片时候,就会发现,引用出来的图片都不是想要的了。

参与评论