CentOS Nginx 防盗链 http-refer

zys | | 访问(66)

  配置

location / {
  valid_referers none blocked www.oldtom.cc;
  if ($invalid_referer){
      return 404;
  }
  index index.html;
}

  1、Nginx Referer 模块

  当一个请求头的Referer字段中包含一些非正确的字段,这个模块可以禁止这个请求访问站点。

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

  2、valid_referers 指令

  配置语法:valid_referers [none|blocked|server_names] …

  默认配置:no

  配置路径:server,location

  这个指令在referer头的基础上为 $invalid_referer 变量赋值,其值为0或1。

  可以使用这个指令来实现防盗链功能,如果valid_referers列表中没有Referer头的值, $invalid_referer将被设置为1。

  参数可以使如下形式:

  none 意为不存在的Referer头(表示空的,也就是直接访问,比如直接在浏览器打开一个图片)

  blocked 意为根据防火墙伪装Referer头,如:“Referer: XXXXXXX”。

  server_names 为一个或多个服务器的列表,0.5.33版本以后可以在名称中使用“*”通配符。