欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Nginx服務(wù)器下防盜鏈的方法介紹

 更新時(shí)間:2015年07月03日 11:06:12   投稿:goldensun  
這篇文章主要介紹了Nginx服務(wù)器下防盜鏈的方法介紹,主要通過修改服務(wù)器的配置文件來實(shí)現(xiàn),需要的朋友可以參考下

修改 /usr/local/nginx/conf/nginx.conf 這個(gè)配置文件。

找到

 location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires   30d;
}[/code] 

修改成:

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
valid_referers none blocked *.jannn.com jannn.com;
if($invalid_referer) {
rewrite ^/ http://www.jannn.com/404.jpg;
#return404;
}
expires   30d;
}

第一行:

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$

其中“gif|jpg|jpeg|png|bmp|swf”設(shè)置防盜鏈文件類型,自行修改,每個(gè)后綴用“|”符號(hào)分開!

第三行:

valid_referers none blocked *.jannn.com jannn.com;

就是白名單,允許文件鏈出的域名白名單,自行修改成您的域名!*.jannn.com這個(gè)指的是子域名,域名與域名之間使用空格隔開!

第五行:

rewrite ^/ http://www.jannn.com/404.jpg;

這個(gè)圖片是盜鏈返回的圖片,也就是替換盜鏈網(wǎng)站所有盜鏈的圖片。這個(gè)圖片要放在沒有設(shè)置防盜鏈的網(wǎng)站上,因?yàn)榉辣I鏈的作用,這個(gè)圖片如果也放在防盜鏈網(wǎng)站上就會(huì)被當(dāng)作防盜鏈顯示不出來了,盜鏈者的網(wǎng)站所盜鏈圖片會(huì)顯示X符號(hào)。

這樣設(shè)置差不多就可以起到防盜鏈作用了,上面說了,這樣并不是徹底地實(shí)現(xiàn)真正意義上的防盜鏈!

我們來看第三行:

valid_referers none blocked *.jannn.com jannn.com;

valid_referers 里多了“none blocked”

我們把“none blocked”刪掉,改成

valid_referers *.jannn.com jannn.com;

nginx徹底地實(shí)現(xiàn)真正意義上的防盜鏈完整的代碼應(yīng)該是這樣的:

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
valid_referers *.jannn.com jannn.com;

if($invalid_referer) {
rewrite ^/ http://www.jannn.com/404.jpg;
#return404;
}
expires   30d;

這樣您在瀏覽器直接輸入圖片地址就不會(huì)再顯示圖片出來了,也不可能會(huì)再右鍵另存什么的。

第五行:

rewrite ^/ http://www.jannn.com/404.jpg;

這個(gè)是給圖片防盜鏈設(shè)置的防盜鏈返回圖片,如果我們是文件需要防盜鏈下載,把第五行:

rewrite ^/ http://www.jannn.com/404.jpg;

改成一個(gè)鏈接,可以是您主站的鏈接,比如把第五行改成小簡博客主頁:

rewrite ^/ http://www.jannn.com;

這樣,當(dāng)別人輸入文件下載地址,由于防盜鏈下載的作用就會(huì)跳轉(zhuǎn)到您設(shè)置的這個(gè)鏈接!

最后,配置文件設(shè)置完成別忘記重啟nginx生效!

平滑重啟nginx:

 /etc/init.d/nginx reload

后面幾種方法:

原文:Nginx防盜鏈詳細(xì)解說

一般常用的方法是在server或者location段中加入!

valid_referers  none blocked www.yiibase.com yiibase.com;

詳見下面的例子

一、針對(duì)不同的文件類型
上面那篇文章詳細(xì)且經(jīng)過本人的實(shí)踐,卻是可行,網(wǎng)上大都說是

location ~* \.(gif|jpg|jpeg|png|bmp|txt|zip|jar|swf)$ {
valid_referers none blocked *.mynginx.com;
if ($invalid_referer) {
rewrite ^/ http://www.mynginx.com/daolian.gif;
#return 403;
}

將這段代碼添加到server段,但是其實(shí)后面還有

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires   30d;
}

必須將這兩段代碼合成為一段,否則,防盜鏈并不會(huì)生效。有點(diǎn)奇怪的是,我開放到防盜鏈開始幾天都是沒出現(xiàn)資金的防盜鏈圖片,過了幾天后才出現(xiàn)的,不知道為什么,知道的也可以告訴我。
二、針對(duì)不同的目錄

location /img/ {
root /data/img/;
valid_referers none blocked *.yiibase.com yiibase.com;
if($invalid_referer) {
rewrite ^/ http://www.yiibase.com/images/error.gif;
#return403;
}
}

以上是nginx自帶的防盜鏈功能。

三、nginx 的第三方模塊ngx_http_accesskey_module 來實(shí)現(xiàn)下載文件的防盜鏈

安裝Nginx和nginx-http-access模塊

復(fù)制代碼 代碼如下:
#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_MODULESngx_http_accesskey_module
#(這是此模塊的一個(gè)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
server{
.....
location /download {
accesskey             on;
accesskey_hashmethod  md5;
accesskey_arg         "key";
accesskey_signature   "mypass$remote_addr";
}
}

/download 為你下載的目錄。

前臺(tái)php產(chǎn)生的下載路徑格式是:

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

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

1.下載Nginx HttpAccessKeyModule模塊文件:Nginx-accesskey-2.0.3.tar.gz;

2.解壓此文件后,找到nginx-accesskey-2.0.3下的config文件。編輯此文件:替換其中的"$HTTP_ACCESSKEY_MODULE"為"ngx_http_accesskey_module";

3.用一下參數(shù)重新編譯nginx:

./configure --add-module=path/to/nginx-accesskey

4.修改nginx的conf文件,添加以下幾行:

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

其中:
accesskey為模塊開關(guān);
accesskey_hashmethod為加密方式MD5或者SHA-1;
accesskey_arg為url中的關(guān)鍵字參數(shù);
accesskey_signature為加密值,此處為mypass和訪問IP構(gòu)成的字符串。
訪問測試腳本download.php:

<?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>";
$output_org_url="<a href=http://www.example.cn/download
/G3200507120520LM.rar>download_org_path</a>";

echo$output_add_key;
echo$output_org_url;
?>

訪問第一個(gè)download_add_key鏈接可以正常下載,第二個(gè)鏈接download_org_path會(huì)返回403 Forbidden錯(cuò)誤。

如果不怕麻煩,有條件實(shí)現(xiàn)的話,推薦使用Nginx HttpAccessKeyModule這個(gè)東西。

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

據(jù)說Nginx HttpAccessKeyModule現(xiàn)在連迅雷都可以防了,可以嘗試一下。

相關(guān)文章

最新評(píng)論