綠色資源(yuán)網:您身邊最放心的安全下載站! 最新軟件|熱(rè)門排行|軟(ruǎn)件分類|軟(ruǎn)件專題|廠商大全

綠色資源網

技術教程
您的(de)位置:首頁服(fú)務器類Web服務器(qì) → nginx服務器防盜鏈設置教程 (nginx圖片防盜鏈操作)

nginx服務器防(fáng)盜鏈設置(zhì)教程 (nginx圖片(piàn)防盜鏈操作(zuò))

我(wǒ)要評論 2012/09/26 11:43:45 來源:綠色資源網 編輯:www.ynaad.com [ ] 評論:0 點擊:194次(cì)

Nginx 是一個很牛的高性能Web和反向代理服務器(qì), 它具有有很多非常優越的特性; 在高連接並發的情況下,Nginx是Apache服務(wù)器不錯的替代品,目前(qián)Web服務器(qì)調查顯示Apache下降Ngnix攀(pān)升,linux下更多的服務商選(xuǎn)擇了Ngnix放棄了Apache; Nginx在美國是做虛擬主機生意的老板們經常選擇的軟件平台之一. 能夠支持高達 50,000 個並發連接數的響應, 感謝Nginx為我們選擇(zé)了 epoll and kqueue作為開發模型. 目前中國大陸使用nginx網站用戶(hù)有:新浪、網易、 騰訊,另外知名的微網誌(zhì)Plurk也(yě)使用nginx。

一般常用的方法(fǎ)是在server或者locations段中加入!
valid_referers   none  blocked  www.hao251.com  hao251.com;
詳見下麵的例子
其中 none 表示 空(kōng)的來路,也就是(shì)直接(jiē)訪問,比如直接在瀏覽器打開一個圖片
blocked 表示被(bèi)防火牆標記過的來路
server_names 也就是域名了(le)。0.5.33以後的版本中,可以用*.hao251.com來表示所有(yǒu)的二級域(yù)名

一。針對不同的文件類型
locations ~ .*\.(wma|wmv|asf|mp3|mmf|zip|rar|jpg|gif|png|swf|flv)$ {
     valid_referers none blocked *.hao251.com hao251.com;
     if ($invalid_referer) {
     #rewrite ^/ http://www.hao251.com/error.html;
     return 403;
      }
}

第一行:wma|gif|jpg|png|swf|flv
表示對wma、gif、jpg、png、swf、flv後綴的文件實行防盜鏈
第二行(háng):*.hao251.com hao251.com
表示對*.hao251.com hao251.com這2個來(lái)路進行(háng)判斷(duàn)(*代(dài)表任何,任何的二級域名(míng)),你可(kě)以添加更多
if{}裏麵內容的意思是,如果來路不是指定來路就跳轉到403錯誤頁麵,當然直(zhí)接返回404也是可以的,也可以是圖片。

二。針對(duì)不同的目(mù)錄
locations /img/ {
    root /data/img/;
    valid_referers none blocked *.hao251.com hao251.com;
    if ($invalid_referer) {
                   rewrite  ^/  http://www.hao251.com/images/error.gif;
                   #return   403;
    }
}


三。以上(shàng)是nginx自帶的防盜鏈功能,另外還可以利用 nginx 的(de)第三方(fāng)模(mó)塊 ngx_http_accesskey_module 來實現(xiàn)下載文件的防盜(dào)鏈

安裝Nginx和nginx-http-access模塊
#tar zxvf nginx-0.7.61.tar.gz
#cd nginx-0.7.61/
#tar xvfz nginx-accesskey-2.0.3.tar.gz
#cd nginx-accesskey-2.0.3
#vi config
#把HTTP_MODULES="$HTTP_MODULES $HTTP_ACCESSKEY_MODULE" 修改成HTTP_MODULES="$HTTP_MODULES ngx_http_accesskey_module" (這是此模塊的一個bug)
#./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --add-module=/root/nginx-accesskey-2.0.3
編譯成功後(hòu),在主配置文件加(jiā)入類似下麵的代碼:

server{
.....
    locations /download {
        accesskey             on;
        accesskey_hashmethod  md5;
        accesskey_arg         "key";
        accesskey_signature   "mypass$remote_addr";
    }
}

/download 為(wéi)你下(xià)載的目錄。

前台php產生的下載路徑格式是:

1.http://*****.com/download/1.zip?key=<?php echo md5('mypass'.$_SERVER["REMOTE_ADDR"]);?>
這樣,當訪問沒有跟參數一(yī)樣時,其他用戶打開時,就出現:403

NginxHttpAccessKeyModule第三方模塊。實現(xiàn)方法如下:

1. 下載Nginx HttpAccessKeyModule模塊文件:Nginx-accesskey-2.0.3.tar.gz
2. 解壓此文件後,找到nginx-accesskey-2.0.3下的(de)config文(wén)件。編輯此文件(jiàn):替換其中(zhōng)的"$HTTP_ACCESSKEY_MODULE"為"ngx_http_accesskey_module";
3. 用一下參數(shù)重新編譯nginx:
./configure --add-module=path/to/nginx-accesskey
4. 修改nginx的conf文件,添加以下幾行:
locations /download {
  accesskey             on;
  accesskey_hashmethod  md5;
  accesskey_arg         "key";
  accesskey_signature   "mypass$remote_addr";
}
其(qí)中:
accesskey為模塊開關;
accesskey_hashmethod為加密方式MD5或者SHA-1;
accesskey_arg為url中的關鍵字參數;
accesskey_signature為加密值,此(cǐ)處為mypass和訪問IP構成(chéng)的(de)字符串。

訪問測試腳本download.php:
<?
$ipkey= md5("mypass".$_SERVER['REMOTE_ADDR']);
$output_add_key="<a href=http://www.example.cn/download/G3200507120520LM.rar?key=".$ipkey.">download_add_key</a><br />";
$output_org_url="<a href=http://www.example.cn/download/G3200507120520LM.rar>download_org_path</a><br />";
echo $output_add_key;
echo $output_org_url;
?>
訪問第一個download_add_key鏈接可以正常下載,第二個(gè)鏈接download_org_path會返回403 Forbidden錯誤。

如果不怕麻煩,有條(tiáo)件實現的話,推薦使用Nginx HttpAccessKeyModule這個東西。

他的運行方式是:如我的download 目(mù)錄下有一個 file.zip 的文件。對應的URI 是http://www.hao251.com/download/file.zip
使用ngx_http_accesskey_module 模塊後http://www.hao251.com/download/file.zip?key=09093abeac094. 隻有給定(dìng)的key值正確了,才能夠下載download目錄下的file.zip。而且 key 值是根據用戶的IP有關的,這樣就可以避(bì)免被盜鏈了。

據說Nginx HttpAccessKeyModule現在連迅雷(léi)都可以防了,可以嚐試一下。

下載:
Nginx 0.8.51 穩定版下載:nginx-0.8.51nginx/Windows-0.8.51
HttpAccessKeyModule第(dì)三方模塊下(xià)載(zǎi):http://wiki.nginx.org/images/5/51/Nginx-accesskey-2.0.3.tar.gz

關鍵詞:nginx,服務器防盜(dào)鏈

閱讀本文後您有什麽(me)感想? 已有(yǒu) 人給出評價(jià)!

  • 0 歡(huān)迎喜歡
  • 0 白癡(chī)
  • 0 拜托
  • 0 哇
  • 0 加油
  • 0 鄙(bǐ)視
免费人欧美成又黄又爽的视频丨一本色道久久88综合日韩精品丨国产专区日韩精品欧美色丨午夜无遮挡男女啪啪视频丨国产欧美日韩综合精品一区二区丨亚洲精品无码不卡在线播HE丨亚洲精品国产精品国自产观看丨日韩国产高清av不卡