使用referer指令配置Nginx服务器来防止图片盗链

 更新时间:2015年12月30日 10:49:53   投稿:goldensun  
这篇文章主要介绍了使用referer指令配置Nginx服务器来防止图片盗链的方法,文中也简单介绍了referer指令的一些语法和常用参数,需要的朋友可以参考下

由于nginx不支持.htaccess,所以,从这个方面直接去防止是行不通的,我们要通过修改配置文件来解决。
首先,我们找到需要防盗链的域名的conf文件,路径:/usr/local/nginx/conf/vhost/,比如guance.com.conf。先备份下原文件,然后找到下面的部分:

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}

将它修改为:

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
valid_referers none blocked www.jb51.net jb51.net;
if ($invalid_referer) {
rewrite ^/ https://www.jb51.net/404.jpg;
#return 404;
}
expires 30d;
}

上面的内容,大家请根据个人的情况酌情修改,我这里做基本的解释:
第一行gif|jpg|jpeg|png……这些是您需要防止盗链的文件类型,您可以补充一些后缀类型;
第三行是你的网站的域名,就是说放行的域名,如果有多个,请添加,注意空格;
第五行是给盗链看到的图片,返回一个404.jpg,这个图片源地址是要可以外链的哦,不然,别人看到的也就一个XX。
完成之后保存,上传到原位置覆盖,之后重启下lnmp使之生效。

/root/lnmp restart

referer指令简介
nginx模块ngx_http_referer_module通常用于阻挡来源非法的域名请求.我们应该牢记,伪装Referer头部是非常简单的事情,所以这个模块只能用于阻止大部分非法请求.我们应该记住,有些合法的请求是不会带referer来源头部的,所以有时候不要拒绝来源头部(referer)为空的请求.
语法: referer_hash_bucket_size size;
默认值: referer_hash_bucket_size 64;
配置段: server, location
这个指令在nginx 1.0.5中开始出现.
Sets the bucket size for the valid referers hash tables. The details of setting up hash tables are provided in a separate document.
语法:     referer_hash_max_size size;
默认值:     referer_hash_max_size 2048;
配置段:     server, location
这个指令在nginx 1.0.5中开始出现.
Sets the maximum size of the valid referers hash tables. The details of setting up hash tables are provided in a separate document.
语法: valid_referers none | blocked | server_names | string ...;
默认值: —
配置段: server, location
指定合法的来源'referer', 他决定了内置变量$invalid_referer的值,如果referer头部包含在这个合法网址里面,这个变量被设置为0,否则设置为1.记住,不区分大小写的.
参数说明
none
“Referer” 来源头部为空的情况
blocked
“Referer”来源头部不为空,但是里面的值被代理或者防火墙删除了,这些值都不以http://或者https://开头.
server_names
“Referer”来源头部包含当前的server_names(当前域名)
arbitrary string
任意字符串,定义服务器名或者可选的URI前缀.主机名可以使用*开头或者结尾,在检测来源头部这个过程中,来源域名中的主机端口将会被忽略掉
regular expression
正则表达式,~表示排除https://或http://开头的字符串.
最后
图片使用来源头部做防盗链是最合理的. 简单、实用。但是没有办法防采集。

相关文章

  • nginx服务器中access_log日志分析与配置详解

    nginx服务器中access_log日志分析与配置详解

    通过访问日志,可以知晓用户的地址,网站的哪些部分最受欢迎,用户的浏览时间,对大多数用户用的的浏览器做出针对性优化。下面这篇文章主要给大家介绍了关于nginx服务器中access_log日志分析与配置的相关资料,需要的朋友可以参考下。
    2017-12-12
  • Nginx反向代理proxy_cache_path directive is not allowed错误解决方法

    Nginx反向代理proxy_cache_path directive is not allowed错误解决方法

    这篇文章主要介绍了Nginx反向代理proxy_cache_path directive is not allowed错误解决方法,需要的朋友可以参考下
    2015-04-04
  • Nginx流量拷贝ngx_http_mirror_module模块使用方法详解

    Nginx流量拷贝ngx_http_mirror_module模块使用方法详解

    这篇文章主要介绍了Nginx流量拷贝,Nginx专门提供了ngx_http_mirror_module模块,用来实现流量拷贝。将生产环境的流量拷贝到预上线环境或测试环境
    2022-04-04
  • 使用Nginx做静态文件服务器,如何进行权限验证

    使用Nginx做静态文件服务器,如何进行权限验证

    这篇文章主要介绍了使用Nginx做静态文件服务器,如何进行权限验证问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • Nginx对网段内ip的连接数限流配置详解

    Nginx对网段内ip的连接数限流配置详解

    这篇文章主要介绍了Nginx对网段内ip的连接数限流配置详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • LNMP原理与简单部署过程

    LNMP原理与简单部署过程

    LNMP架构,是指在Linux平台下,由运行Nginx的web服务器,运行PHP的动态页面解析程序和运行MySQL的数据库组成的网站架构,也是当前常用的系统架构之一,本文主要介绍LNMP原理与简单部署,感兴趣的朋友一起看看吧
    2023-08-08
  • Nginx中server_name指令的参数详解

    Nginx中server_name指令的参数详解

    这篇文章主要介绍了Nginx中server_name指令的参数详解,Nginx中的server_name指令主要用于配置基于名称的虚拟主机,server_name指令一项很实用的功能便是可以在使用正则表达式的捕获功能,这样可以尽量精简配置文件,需要的朋友可以参考下
    2023-08-08
  • Nginx如何集成到Windows服务

    Nginx如何集成到Windows服务

    文章介绍了如何在Windows 11上将Nginx配置为系统服务,并提供了一个详细的步骤指南,包括下载和配置Winsw工具,以及安装和删除Nginx服务的方法
    2024-12-12
  • nginx使用nginx-rtmp-module模块实现直播间功能

    nginx使用nginx-rtmp-module模块实现直播间功能

    做的过程出现很多问题,环境其实就需要nginx就可以,然后就是在播放的问题,m3u8的格式,mac直接访问就支持,苹果系统原生H5支持m3u8,还有就是手机直接访问也支持!但是其他其他系统PC端不支持,尝试了好多都不行,最后终于找到了一个支持m3u8格式H5播放
    2017-10-10
  • Nginx安装SSl模板异常处理方式

    Nginx安装SSl模板异常处理方式

    文章介绍了在Linux环境下配置Nginx支持SSL时遇到的问题及解决方法,主要步骤包括:安装SSL模块、解决缺少OpenSSL包的问题,并通过下载和编译源码的方式解决SSL模块安装失败的问题
    2025-02-02

最新评论