nginx 防盗链

nginx 防盗链

指令:

  • refere_hash_bucket_size
    Sets the bucket size for the valid referers hash tables. The details of setting up hash tables are provided in a separate document.
  • refere_hash_max_size
    Sets the maximum size of the valid referers hash tables. The details of setting up hash tables are provided in a separate document.
  • valid referes: valid_referers none | blocked | server_names | string …;
    指定”REFERE”请求头部字段值,会引发”$invalid_refere” 的值为”0”或”1”,后面字符匹配的则为”0”,不然则为”1”,匹配不区分大小写

    none: 在请求头部没有”Referer” 字段
    blocked: 请求头部中存在 “Referer” 字段,可是其值被防火墙或者代理服务器删除,此种状况会出现不是以”http://"和"https://"开始的
    server_names: 请求头部包含服务器名
    string: 定义一个服务器名,和一个可选的URI前缀,服务器名能够是以”*”结尾或者开始,不进行端口的检查html

正则表达式:
第一个符号应该使用”~”,而且匹配字符应该是从”http://"和"https://nginx

Example:

valid_referers none blocked server_names
               *.example.com example.* www.example.org/galleries/
               ~\.google\.;
  • 配置以下,能够和上面的配置结合起来
location ~* ^.+\.(gif|jpg|png|swf|flv|rar|zip|doc|pdf|gz|bz2|jpeg|bmp|xls)$
{
    expires 7d;
    valid_referers none blocked server_names  *.test.com ;
    if ($invalid_referer) {
        return 403;
    }
    access_log off;
}

location ~ …:”~“表示后面内容执行一个正则匹配而且不区分大小写,而”~”表示执行正则匹配可是区分大小写 正则表达式

上面配置文件无做用,下载echo-nginx-module 在if($invalid_referer) 中加echo语句 能够看出并无执行到该语句bash

相关文章
相关标签/搜索