天天看點

【Nginx】Nginx實作圖檔防盜鍊

目錄

​​Nginx有三種方法可以進行防盜鍊​​

​​1、對Nginx下所有項目的指定資源不同檔案類型進行防盜鍊​​

​​2、對指定目錄或者指定項目目錄進行防盜鍊​​

​​3、nginx 的第三方子產品ngx_http_accesskey_module 來實作下載下傳檔案的防盜鍊​​

​​1. 對Nginx下所有項目的指定資源不同檔案類型進行防盜鍊​​

​​2. 對指定目錄或者指定項目目錄進行防盜鍊​​

Nginx有三種方法可以進行防盜鍊

1、對Nginx下所有項目的指定資源不同檔案類型進行防盜鍊

比如對gif、jpg、png、swf、flv、mp3、mp4等資源進行防盜鍊

2、對指定目錄或者指定項目目錄進行防盜鍊

比如Nginx下有3個項目,A、B、C,

可以對A目錄下的images進行防盜鍊,

也可以對B目錄下的images進行防盜鍊,

也就是說,對指定目錄進行防盜鍊。

3、nginx 的第三方子產品ngx_http_accesskey_module 來實作下載下傳檔案的防盜鍊

1. 對Nginx下所有項目的指定資源不同檔案類型進行防盜鍊

找到nginx的配置檔案nginx.conf:/usr/local/nginx/conf/nginx.conf

http{

...

    server{

        location ~* \.(gif|jpg|png|swf|flv)$ { #需要防盜鍊資源的檔案類型
          valid_referers none blocked  27wy.cn; #這是可以盜鍊的域名或IP位址,一般情況可以把google,baidu,sogou,soso,bing,feedsky,zhuaxia,photozero等域名放進來
          if ($invalid_referer) { 
            #這樣設定能夠防盜鍊,不斷地302重定向很多次,可能會加重伺服器的負擔,是以不建議這麼做,除非有單獨的圖檔伺服器支援
            #rewrite ^/ https://www.27wy.cn:90/picture/images/details-image-1.jpg; #如果有人非法盜鍊資源,則傳回一張防盜鍊的圖檔
            return 403; #或者傳回403錯誤代碼
          } 
        }
    }
}      

2. 對指定目錄或者指定項目目錄進行防盜鍊

location ~* /picture/images/{ 
    #在html目錄下的picture項目下的images目錄進行防盜鍊
    valid_referers none blocked server_names 27wy.cn;#允許通路目錄的域名或IP
    if ($invalid_referer){
        return 403;
    }
    #不允許通路傳回403
}      

繼續閱讀