一 盗链

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. jmeter在Windows下安装(含插件安装)

      [准备环境] jdk1.8 jmeter的安装包下载 [步骤] 1 把下载下来的压缩包解压,点击jmeter.bat 启动,启动后是英文界面 2 修改默认的英文界面,打开jmeter.properti ...

    2. Area.js下载

      因为vant AddressEdit 地址编辑的必要组件area.js网站经常进不去,所以存在这里,area.js 代码如下: export default { province_list: { 11 ...

    3. 《Elasticsearch 权威指南》阅读笔记

      书籍地址 https://www.elastic.co/guide/cn/elasticsearch/guide/current/languages.html

    4. MySQL一招入门

      连接mysql数据库命令:mysql -u root -p 创建mysql数据库:create databaase xx库; 创建mysql表: create table db_xx表( id int ...

    5. FastAPI 快速搭建一个REST API 服务

      最近正好在看好的接口文档方便的工具, 突然看到这个, 试了一下确实挺方便 快速示例 from fastapi import FastAPI from pydantic import BaseModel ...

    6. js事件入门(1)

      1.事件相关概念 1.1 什么是事件? 事件是用户在访问页面时执行的操作,也就是用户访问页面时的行为.当浏览器探测到一个事件时,比如鼠标点击或者按键.它可以触发与这个事件相关的JavaScript对象 ...

    7. Double值保留两位小数的四种方法

      public class DoubleTest { //保留两位小数第三位如果大于4会进一位(四舍五入) double f = 6.23556; /** *使用精确小数BigDecimal */ pu ...

    8. Spring AOP学习笔记05:AOP失效的罪因

      前面的文章中我们介绍了Spring AOP的简单使用,并从源码的角度学习了其底层的实现原理,有了这些基础之后,本文来讨论一下Spring AOP失效的问题,这个问题可能我们在平时工作中或多或少也会碰到 ...

    9. .net Core中如何读取Appsetting配置文件

      现在APPSetting下面配置以下节点 { "Logging": { "IncludeScopes": false, "LogLevel" ...

    10. autocomplete 之 ASP.NET

      <link href="CSS/jquery.autocomplete.css" rel="stylesheet" type="text/css ...