一 盗链

1.1 盗链概述

盗链指的是在自己的界面展示非本服务器上的内容,通过技术手段获得其他服务器的资源。绕过他人资源展示页面,在自己页面向用户提供此内容,从而减轻自己服务器的负担,因为真实的空间和流量来自其他服务器。
因此,通常为了避免被盗链,通常Web服务器建议配置防盗链,其主要防盗链思路是能区别哪些请求是非正常用户请求。

二 防盗链

2.1 防盗链配置

语法:valid_referers none | blocked | server_names | string ...;
默认值:——
可配置段:server, location

2.2 环境准备




主机

域名

IP

备注
nginx01
good.linuxds.com
172.24.10.21
被盗方
nginx02
steal.uclouda.com
172.24.10.22
盗链方
添加解析:/etc/hosts
  1 172.24.10.21	good.odocker.com
2 172.24.10.22 steal.uclouda.com
3 [root@nginx0X ~]# nginx -V
4 nginx version: nginx/1.16.1

2.3 模拟盗链

  1 [root@nginx01 ~]# vi /etc/nginx/conf.d/good.conf	#创建模拟被盗方配置
2 server {
3 listen 80;
4 charset utf-8;
5 server_name good.linuxds.com;
6 location / {
7 root /usr/share/nginx/good;
8 index index.html;
9 access_log /var/log/nginx/good.access.log main;
10 error_log /var/log/nginx/good.error.log warn;
11 }
12 }
  1 [root@nginx01 ~]# mkdir -p /usr/share/nginx/good/images
2 [root@nginx01 ~]# echo '<h1>Good</h1>' > /usr/share/nginx/good/index.html
3 [root@nginx01 ~]# ll /usr/share/nginx/good/images #上传一张测试图片
4 total 60K
5 -rw-r--r-- 1 root root 4.8K Mar 11 16:27 baidu.png

  1 [root@nginx02 ~]# vi /etc/nginx/conf.d/steal.conf	#创建盗链方配置
2 server {
3 listen 80;
4 charset utf-8;
5 server_name steal.uclouda.com;
6 location / {
7 root /usr/share/nginx/steal;
8 index index.html;
9 access_log /var/log/nginx/steal.access.log main;
10 error_log /var/log/nginx/steal.error.log warn;
11 }
12 }
  1 [root@nginx02 ~]# mkdir -p /usr/share/nginx/steal
2 [root@nginx02 ~]# vi /usr/share/nginx/steal/index.html
3 <html>
4 <body>
5 <br>盗链图片</br>
6 <img src="http://good.linuxds.com/images/baidu.png">
7 </body>
8 </html>
  1 [root@nginx01 ~]# nginx -t -c /etc/nginx/nginx.conf	#检查配置文件
2 [root@nginx01 ~]# nginx -s reload #重载配置文件
3 [root@nginx02 ~]# nginx -t -c /etc/nginx/nginx.conf #检查配置文件
4 [root@nginx02 ~]# nginx -s reload #重载配置文件
浏览器访问:http://good.linuxds.com/images/baidu.png
浏览器访问盗链网站:http://steal.uclouda.com/

2.4 防止盗链配置01

  1 [root@nginx01 ~]# vi /etc/nginx/conf.d/good.conf
2 server {
3 listen 80;
4 charset utf-8;
5 server_name good.linuxds.com;
6 location / {
7 root /usr/share/nginx/good;
8 index index.html;
9 access_log /var/log/nginx/good.access.log main;
10 error_log /var/log/nginx/good.error.log warn;
11 valid_referers none blocked good.linuxds.com;
12 if ($invalid_referer) {
13 return 403;
14 }
15 }
16 }
  1 [root@nginx01 ~]# nginx -t -c /etc/nginx/nginx.conf	#检查配置文件
2 [root@nginx01 ~]# nginx -s reload #重载配置文件
配置释义:
valid_referers:此关键字定义了白名单,即本机自身访问允许;
invalid_referer:此为内置变量,通过判断上一行中的valid_referers值会返回0或者1,
  • none代表请求头中没有referer信息,这一般是直接在浏览器输入图片网址;
  • blocked代表被防火墙过滤标记过的请求。如果访问来源不在白名单内,则返回403错误
  • 浏览器访问:http://good.linuxds.com/images/baidu.png
    浏览器访问盗链网站:http://steal.uclouda.com/
    如上所示:已成功配置防盗链。

    2.5 防盗链配置02

      1 [root@nginx01 ~]# vi /etc/nginx/conf.d/good.conf
    2 server {
    3 listen 80;
    4 charset utf-8;
    5 server_name good.linuxds.com;
    6 location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ { #针对特定文件类型
    7 valid_referers none blocked *.linuxds.com linuxds.com;
    8 access_log /var/log/nginx/good.access.log main;
    9 error_log /var/log/nginx/good.error.log warn;
    10 if ($invalid_referer) {
    11 rewrite ^/ https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=1767274412,1868768041&fm=26&gp=0.jpg;
    12 }
    13 }
    14 }
    配置释义:
    rewrite:判断如果不是白名单第五行则进行重定向到自定义的固定链接。
    浏览器访问盗链网站:http://steal.uclouda.com/

    011.Nginx防盗链的更多相关文章

    1. 六、Nginx 防盗链

      盗链是指一个网站的资源(图片或附件)未经允许在其它网站提供浏览和下载.尤其热门资源的盗链,对网站带宽的消耗非常大,本文通过nginx的配置指令location来实现简单的图片和其它类型文件的防盗链. ...

    2. Nginx防盗链的3种方法

      一:一般的防盗链如下: location ~* \.(gif|jpg|png|swf|flv)$ { valid_referers none blocked www.jzxue.com jzxue.c ...

    3. Nginx防盗链配置案例配置,Nginx的知识分享

      防盗链的含义:网站内容不在自己服务器上,而通过技术手段,绕过别人放广告有利益的最终页,直接在自己的有广告有利益的页面上向最终用户提供此内容. 常常是一些名不见经传的小网站来盗取一些有实力的大网站的地址 ...

    4. Nginx系列二:(Nginx Rewrite 规则、Nginx 防盗链、Nginx 动静分离、Nginx+keepalived 实现高可用)

      一.Nginx Rewrite 规则 1. Nginx rewrite规则 Rewrite规则含义就是某个URL重写成特定的URL(类似于Redirect),从某种意义上说为了美观或者对搜索引擎友好, ...

    5. nginx防盗链、nginx访问控制、nginx解析php相关配制、nginx代理

      1.nginx防盗链编辑:vim /usr/local/nginx/conf/vhost/test.com.conf写入: location ~* ^.+\.(gif|jpg|png|swf|flv| ...

    6. nginx防盗链配置

      Ps:防盗链的意义就是保证自己的版权,不免网站的流量流失,为他人做嫁衣.下面是网上看到的三种方法: 修改 /usr/local/nginx/conf/nginx.conf 这个配置文件.找到locat ...

    7. Nginx防盗链、访问控制、解析PHP相关配置及Nginx代理

      6月11日任务 12.13 Nginx防盗链12.14 Nginx访问控制12.15 Nginx解析php相关配置12.16 Nginx代理 扩展502问题汇总 http://ask.apelearn ...

    8. 使用NGINX+LUA实现WAF功能 和nginx 防盗链

      使用NGINX+LUA实现WAF功能 一.了解WAF 1.1 什么是WAF Web应用防护系统(也称:网站应用级入侵防御系统 .英文:Web Application Firewall,简称: WAF) ...

    9. Linux centos VMware Nginx防盗链、Nginx访问控制、Nginx解析php相关配置、Nginx代理

      一.Nginx防盗链 配置如下,可以和上面的配置结合起来 location ~* ^.+\.(gif|jpg|png|swf|flv|rar|zip|doc|pdf|gz|bz2|jpeg|bmp|x ...

    随机推荐

    1. vs.net/vscode中使用Beetlex创建vue应用

      平时在开发Vue应用则需要安装nodejs,vue cli等相关东西相对来说麻烦一些:如果你喜欢像vs.net/vscode创建普通项目一样就能开发Vue项目的话那可以尝试一下BeetleX针对Vue ...

    2. 拿来即用:用C+JS结构来处理JSON数据

      [面对的问题] 在物联网产品的开发过程中,对JSON格式的数据处理是一个强需求,例如亚马逊的 AWS IOT平台,设备与后台之间的通讯数据都是JSON格式,先瞄一眼大概的样子: 这是一个真实产品的通讯 ...

    3. caffe的python接口学习(4)mnist实例手写数字识别

      以下主要是摘抄denny博文的内容,更多内容大家去看原作者吧 一 数据准备 准备训练集和测试集图片的列表清单; 二 导入caffe库,设定文件路径 # -*- coding: utf-8 -*- im ...

    4. Nuxt+Express后端api接口配置与实现方式

      Nuxt.js 是一个基于 Vue.js 的轻量级应用框架,可用来创建服务端渲染 (SSR) 应用.本文带你了解在 Nuxt.js 中使用 Express 如何编写实现后端的 api 接口. 创建接口 ...

    5. 二.4vue展示用户数据及用户组操作以及给用户组添加额外字段

      一.用户列表 1.新建(1)views/users/index.vue: <template> <div class="user-list-container"& ...

    6. (私人收藏)Linux命令大全(修正版)

      Linux命令大全(修正版) https://pan.baidu.com/s/1tPTv1PzCelBC_Eq-ASAOBg1yp3 文件传输 bye ftp ftpcount ftpshut ftp ...

    7. 嗨,This is G-Aurora

      嗨,This is G-Aurora   分享让我们得以持续 在很长一段时间里,自己都是将学习笔记整理到自己的磁盘或者网盘中.大概那个时候还对"开源与分享"不太感冒.但后来越来越觉 ...

    8. POJ3057 Evacuation 二分图匹配+最短路

      POJ3057 Evacuation 二分图匹配+最短路 题目描述 Fires can be disastrous, especially when a fire breaks out in a ro ...

    9. Python——assert、isinstance的用法

      1.assert 函数说明: assert语句是一种插入调试断点到程序的一种便捷的方式. 使用范例 assert 3 == 3 assert 1 == True assert (4 == 4) pri ...

    10. vs遇到的字符串问题

      原以为自己的字符串已经理解不错了, 今天又被vs搞了. 情景就不说了, 直接说结果: 有两种情况 1 当文件是存储为gbk或者utf-8的时候, 中文字符存储永远是gbk的值. ‘按’字的gbk编码 ...