Nginx-9 防盗链

什么叫盗链

两个网站 A 和 B, B网站引用了A网站上的图片,这种行为就叫做盗链。 防盗链,就是要防止B引用A的图片。

一、nginx 防止网站资源被盗用模块

ngx_http_referer_module

如何区分哪些是不正常的用户?

HTTP Referer是Header的一部分,当浏览器向Web服务器发送请求的时候,一般会带上Referer,

告诉服务器我是从哪个页面链接过来的,服务器借此可以获得一些信息用于处理,例如防止未经允许

的网站盗链图片、文件等。因此HTTP Referer头信息是可以通过程序来伪装生成的,所以通过Referer

信息防盗链并非100%可靠,但是,它能够限制大部分的盗链情况.

二. 防盗链配置

配置要点:
vim /etc/nginx/nginx.conf

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                         '$status $body_bytes_sent "$http_referer" '
                         '"$http_user_agent" "$http_x_forwarded_for"';
# valid_referers 使用方式                         
Syntax:     valid_referers none | blocked | server_names | string ...;
Default:    —
Context: server, location
  • none : 允许没有http_refer的请求访问资源;
  • blocked : 允许不是http://开头的,不带协议的请求访问资源---被防火墙过滤掉的;
  • server_names : 只允许指定ip/域名来的请求访问资源(白名单);

环境(准备两台机器,一张图片)

web服务器(yum安装的 有图片) ---------------10.3.134.111
盗链机器(编译安装的)----------------------------------10.3.134.99

操作web服务器

web服务器上有图片

[root@yum-n ~]# ls /opt/
king.jpg  qf.css  qf.png

查看web服务器的配置文件

server {
    listen       80;
    server_name  localhost;

    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;

    location ~ \.(jpg|css|png)$ {
          root /opt/ ;
    }

    location / {
           include uwsgi_params;
           uwsgi_pass 10.3.134.99:9090;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

}

操作盗链机器

配置盗链机器

[root@mpn-salve ~]# vim /ding/html/index.html 
<html>
<head>
    <meta charset="utf-8">
    <title>www.testdl.com</title>
</head>
<body style="background-color:orange;">
    <img src="http://10.3.134.111/king.jpg"/>
</body>
</html>
image.png

在浏览器中测试(访问盗链机器ip)

image.png

继续在web服务器上操作,防盗链配置

server {
    listen       80;
    server_name  localhost;

    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;

    location ~ \.(jpg|css|png)$ {
          root /opt/ ;
    valid_referers none blocked *.www.testdl.com 10.3.134.111;
                if ($invalid_referer) {
                        return 403;
                }
    }

    location / {
           include uwsgi_params;
           uwsgi_pass 10.3.134.99:9090;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

}
image.png

再次在浏览器中测试(访问盗链机器ip)

image.png

已经无法访问该图片了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 获取全套nginx教程,请访问瓦力博客 防盗链是一种机制,也可以说是一种技术,目的是防止自己网站的东西(如图片,文...
    滔滔逐浪阅读 541评论 0 13
  • nginx防盗链的方法 一般,我们做好防盗链之后其他网站盗链的本站图片就会全部失效无法显示,但是您如果通过浏览器直...
    很少更新了阅读 8,563评论 1 3
  • 做博客的朋友经常会有一些烦恼,比如网站总是被人抄袭,比如网站总是被人引用上面的图片,虽然一张图两张图,并不耗费很多...
    沧海一粟谦阅读 505评论 0 3
  • 目录 一、Nginx防盗链二、Nginx访问控制三、Nginx解析php相关配置四、Nginx代理 一、Nginx...
    XiaoMing丶阅读 1,545评论 0 3
  • 1.太阳和黑洞的人物 1.1今天主要通过体验太阳般的人和黑洞般人形成的原因,几人分别代表自己,爱,安全感,价值感,...
    春艳敬荷阅读 404评论 0 0