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

相關文章
相關標籤/搜索