nginx 的第三方模塊ngx_http_accesskey_module 來實現(xiàn)下載文件的防盜鏈步驟(linux系統(tǒng)下),安裝Nginx和HttpAccessKeyModule模塊(參考LNMP環(huán)境搭建:
第一步:在/usr/local/src/下下載模塊壓縮包:
wget http://wiki.nginx.org/images/5/51/Nginx-accesskey-2.0.3.tar.gz (下載)
tar zxvf Nginx-accesskey-2.0.3.tar.gz (解壓)
cd nginx-accesskey-2.0.3/ (切換目錄)
解壓此文件后裆泳,找到nginx-accesskey-2.0.3下的config文件风罩。
編輯此文件:替換其中的"$HTTP_ACCESSKEY_MODULE"為"ngx_http_accesskey_module"
vi config
修改結(jié)果如下:
#HTTP_MODULES="$HTTP_MODULES $HTTP_ACCESSKEY_MODULE"
HTTP_MODULES="$HTTP_MODULES ngx_http_accesskey_module"
第二步:安裝nginx1.5.2,–with-***設(shè)置的是模塊源碼包的路徑
tar zxvf nginx-1.5.2.tar.gz
cd nginx-1.5.2
./configure --user=www --group=www --prefix=/usr/local/webserver/nginx --with-http_stub_status_module \
--with-http_ssl_module --with-http_realip_module --with-http_image_filter_module \
--add-module=/usr/local/src/nginx-accesskey-2.0.3/
make
make install
/usr/sbin/groupadd www
/usr/sbin/useradd -g www www
創(chuàng)建web根目錄并修改權(quán)限,當(dāng)然可以指定其他目錄,只要和Nginx配置文件一致即可
mkdir -p /data0/htdocs/www
chmod +w /data0/htdocs/www
chown -R www:www /data0/htdocs/www
vi /usr/local/webserver/nginx/conf/nginx.conf
修改#user nobody;為user www www;
修改location /{}中的root html;為網(wǎng)站目錄例如/data0/htdocs/www
在/data0/htdocs/www目錄中隨便創(chuàng)建一個index.html文件
啟動nginx并訪問測試
ulimit -SHn 65535
/usr/local/webserver/nginx/sbin/nginx
其他命令:
測試nginx的配置文件是否正確/usr/local/webserver/nginx/sbin/nginx -t
修改nginx配置文件后使之生效/usr/local/webserver/nginx/sbin/nginx -s reload
查看端口確認(rèn)是否啟動成功 netstat -tunpl | grep 80
查看第三方模塊ngx_http_accesskey_module是否添加上:/usr/local/webserver/nginx/sbin/nginx -V
第三步:修改nginx的conf文件,server{***}里邊添加以下幾行
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產(chǎn)生的下載路徑格式是:http://*****.com/download/1.zip?key=
這樣冬耿,當(dāng)訪問沒有跟參數(shù)一樣時舌菜,其他用戶打開時,就出現(xiàn):403
訪問測試腳本download.php:
<?php
$ipkey= md5("mypass".$_SERVER['REMOTE_ADDR']);
//$ipkey生成的算法要跟配置文件的設(shè)置保持一致
$output_add_key="<a href=http://192.168.1.82/download/a.jpg?key=".$ipkey.">
download_add_key</a>";
$output_org_url="<a href=http://192.168.1.82/download/a.jpg>download_org_path</a>";
echo $output_add_key;
echo $output_org_url;
?>
訪問第一個download_add_key鏈接可以正常下載亦镶,第二個鏈接download_org_path會返回403 Forbidden錯誤日月。
若出現(xiàn)不了,“訪問第一個download_add_key鏈接可以正常下載缤骨,第二個鏈接download_org_path會返回403 Forbidden錯誤”這種結(jié)果爱咬,可查看進(jìn)程:
ps aux | grep nginx
kill -9 2366
kill -9 7863
最后命令啟動nginx: /usr/local/webserver/nginx/sbin/nginx
OK完成,可以查看結(jié)果啦