文档章节

nginx如何实现图片防盗链

mickelfeng
 mickelfeng
发布于 2013/01/25 19:08
字数 504
阅读 196
收藏 8
点赞 0
评论 0
Nginx常用的防盗链主要有以下二种方法,直接写到nginx的配置文件里就可以了。
一,针对图片目录实行防盗链(修改相关域名)
location /images/ {
alias /data/images/;
valid_referers none blocked *.dujiaoniu.com;
if ($invalid_referer) {
rewrite ^/  http://<font color="#ff0000">www.57cto.com</font>/daolian.gif;
#return 403;
}
}

二,针对后缀实行防盗链(修改相关域名)
location ~* \.(gif|jpg|jpeg|png|bmp|txt|zip|jar|swf)$ {
valid_referers none blocked *.dujiaoniu.com;
if ($invalid_referer) {
rewrite ^/  http://<font color="#ff0000">www.57cto.com</font>/daolian.gif;
#return 403;
}
}

需要注意的是,这二段防盗链的配置要放在正确的server里,也就是要放在图片url所在的server_name里。其次
rewrite也要写正确,否则可能造成重复rewrite,可以用firefox的插件Firebug来查看。如果不想重写到某个url,
可以直接返回403。

另外,还可以使用第三方模块ngx_http_accesskey_module实现Nginx防盗链,这里不作介绍,可以百度一下。

附上有关Referer的解释:

当一个请求头的Referer字段中包含一些非正确的字段,这个模块可以禁止这个请求访问站点。
这个头可以随意的伪造,因此,使用这个模块并不能100%的阻止这些请求,绝大多数拒绝的请求来自一些典型的浏览器,
可以认为这些典型的浏览器并不能提供一个”Referer”头,甚至是那些正确的请求。

指令:valid_referers

语法:valid_referers [none|blocked|server_names] …
默认值:none
使用字段:server, location
这个指令在referer头的基础上为 $invalid_referer 变量赋值,其值为0或1。
可以使用这个指令来实现防盗链功能,如果valid_referers列表中没有Referer头的值, $invalid_referer将被设置为1(

参照前例)。
参数可以使如下形式:

none意为不存在的Referer头
blocked意为根据防火墙伪装Referer头,如:“Referer: XXXXXXX”。
server_names为一个或多个服务器的列表,0.5.33版本以后可以在名称中使用“*”通配符。

本文转载自:

共有 人打赏支持
mickelfeng

mickelfeng

粉丝 227
博文 2557
码字总数 554045
作品 0
成都
高级程序员
nginx系统真正有效的图片防盗链完整设置详解

关于nginx防盗链的方法网上有很多教程,都可以用,但是我发现很多教程并不完整,所做的防盗链并不是真正的彻底的防盗链! 一般,我们做好防盗链之后其他网站盗链的本站图片就会全部失效无法显...

gutaotao1989
2017/08/25
0
0
企业级Web Nginx 服务优化(5)

企业级Web Nginx 服务优化(5) 资源防盗链的技术: 1.1.1什么是资源盗链? 简单的说啊,就是某些不法的网站,通过在其自身网站程序里未经许可非法调用其他网站的资源,然后在自己的网站上显示...

余二五
2017/11/09
0
0
Nginx服务器的图片防盗链三种实用方法

一、全站的防盗链方法 在/usr/local/nginx/conf/nginx.conf文件要添加防盗链的server段里添加下面的代码: location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$ { valid_referers none blocked www....

小样
2012/10/10
0
0
利用Varnish实现图片防盗链

图片防盗链功能对于大型网站的运维非常重要,各种Web服务器,如Apache和Nginx都可以很容易地实现图片防盗链功能。利用Varnish实现这个功能也非常简单,只需在配置文件的vcl_recv函数内增加如...

大虾.
2012/08/24
0
0
基于CentOS7上的nginx系统优化

基于CentOS7上的nginx系统优化 隐藏版本信息 首先在CentOS7上安装好nginx服务之后,可以查看当前的nginx版本信息: 为了避免版本信息泄露,从而导致不必要的麻烦,下面介绍两种隐藏版本信息的...

漂移的兔子
07/01
0
0
Nginx系列-5.配置Nginx的防盗链

Nginx系列-5.配置Nginx的防盗链 目录 - Nginx系列 Nginx系列-1.Linux下安装Nginx Nginx系列-2.配置LNMP(Linux、Nginx、MySQL、PHP)架构 Nginx系列-3.配置Nginx虚拟主机 Nginx系列-4.Nginx日...

ngle
06/08
0
0
nginx 防盗链

一篇很好的nginx防盗链文章,复制过来学习,链接地址:http://4593973.blog.51cto.com/4583973/1537963 我们经常会看到在浏览某一图片时会弹出一“403权限禁止”错误,这说明有可能正在浏览的...

飞来的翅膀
2017/07/21
0
0
SQUID/NGINX 下大量静态重写规则/防盗链规则如何实时更新,实时生效!?

有项目要自己做个CDN,其实也比较简单就是分地域,分运用上做个缓存,以前也有做过一些简单的CDN,实现功能跑起来都不是问题,开始用SQUID,后来用NGINX,都挺好的。 新项目的问题是, 有大量...

my.reg
2012/04/22
1K
2
Nginx配置:防盗链、访问控制、解析PHP以及代理

一、Nginx防盗链 防盗链是指一个网站的资源(图片或附件)未经允许在其它网站提供浏览和下载,尤其热门资源的盗链,对网站带宽的消耗非常大,设置防盗链以节省资源。 1、修改虚拟主机配置文件 ...

BatmanLinux
03/15
0
0
centos中nginx图片服务器

1、安装nginx(具体方法baidu) 2、安装好nginx后,修改nginx.conf如下 3、在/usr/local/nginx/创建nginxTestImg和NginxTestImgLog文件夹 mkdir nginxTestImg NginxTestImgLog 4、创建/usr/lo......

chaun
2016/04/07
81
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Java IO类库之ObjectInputStream和ObjectOutPutStream

一、ObjectOutputStream 1 - ObjectOuputStream介绍 ObjectOutputStream(对象字节输出流),用于将一个序列化对象写入到创建ObjectOutputStream时传入的底层字节输入流中,通过源码可知该类继...

老韭菜
10分钟前
0
0
17.TCP:传输控制协议

介绍 TCP和UDP使用同一网络层(IP),但TCP提供了面向连接、可靠的传输层服务 TCP传输给IP层的信息单位称为报文段或段 TCP通过如下方式保证可靠性: 应用数据被分割成TCP认为最合适发送的数据...

loda0128
19分钟前
0
0
重装Oracle时出现environment variable "PATH"错误的解决办法

在win7 64位下重新安装oracle 11g,一直报environment variable "PATH"的错误,按说明将path里多余的路径删除,但没办法解决。选择忽略错误继续安装,装一半会报CRC错误,还是安装失败。最好...

良言
25分钟前
0
0
TensorFlow 全连接的mnist

全连接的mnist import tensorflow as tf# 导入 MINST 数据集from tensorflow.examples.tutorials.mnist import input_datamnist = input_data.read_data_sets("MNIST_data/", one_ho......

阿豪boy
25分钟前
0
0
JAVA 三种WebService 规范

JAVA 中共有三种WebService 规范,分别是JAX-WS(JAX-RPC)、JAXM&SAAJ、JAX-RS。 1. Jaxws(掌握) JAX-WS 的全称为 Java API for XML-Based Webservices ,早期的基于SOAP 的JAVA 的Web 服务...

onedotdot
44分钟前
0
0
将博客搬至CSDN

将博客搬至CSDN

xpbob
45分钟前
1
0
Aidl进程间通信详细介绍

目录介绍 1.问题答疑 2.Aidl相关属性介绍 2.1 AIDL所支持的数据类型 2.2 服务端和客户端 2.3 AIDL的基本概念 3.实际开发中案例操作 3.1 aidl通信业务需求 3.2 操作步骤伪代码 3.3 服务端操作...

潇湘剑雨
今天
0
0
python爬虫日志(3)下载图片

import urlliburl='https://xxx.jpg'#图片地址res=urllib.request.urlopen(url)#此函数用于对url的访问data=res.read() #字节流with open(r'D:\1.jpg',"wb") as code: c...

茫羽行
今天
0
0
vue中$emit的用法

1、父组件可以使用 props 把数据传给子组件。 2、子组件可以使用 $emit 触发父组件的自定义事件。 vm.$emit( event, arg ) //触发当前实例上的事件 vm.$on( event, fn );//监听event事件后运...

JamesView
今天
0
0
bash审计系统搭建

step1:使用saltstack工具bash部署>>>>>> # salt -N clienta state.sls audit step2:安装elasticsearch>>>>>> 注意: 1.不能以root用户进行启动,需要创建用户,并对解压的elasticsearch目录赋......

硅谷课堂
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部