nginx 防盜鏈配置

Nginx 防盜鏈配置

前言:公司要做防盜鏈配置,配置好了沒有生效,就在度娘上找了下,做了如下的配置,以便自己忘了就記錄下來。

nginx模塊ngx_http_referer_module通常用於阻擋來源非法的域名請求。

## 防盜鏈 ##
(1) 定義合規的引用
valid_referers none | blocked | server_names | string ...;
(2) 拒絕不合規的引用
if  ($invalid_referer) {
rewrite ^/.*$ http://www.b.org/403.html 
}

none    意思是不存在的Referer頭(表示空的,也就是直接訪問,比如直接在瀏覽器打開一個圖片)
blocked 意爲根據防火牆僞裝Referer頭,如:“Referer: XXXXXXX”。
server_names 爲一個或多個服務器的列表,0.5.33版本以後可以在名稱中使用“*”通配符。

server_names 就是指定那個來源訪問你的網站可以這樣配置如下:
valid_referers none blocked  *.youdomain.com youdomain.com server_names ~\.baidu\.;

以上所有來至youdomain.com 域名中baidu的站點都可以訪問到當前站點的圖片,如果來源域名不在這個列表中,
那麼$invalid_referer等於1,在if語句中返回一個404給用戶.

## 參數配置如下:

location ~* ^.+\.(jpg|gif|png|swf|flv|wma|wmv|asf|mp3|mmf|zip|rar)$ {
    valid_referers none blocked  *.youdomain.com youdomain.com;
    if ($invalid_referer) {
        #rewrite ^/ http://www.youdomain.com/404.jpg;
        return 404;
        break;
     }
     access_log off;
 }


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章