Nginx安装配置防盗链模块nginx-accesskey

Nginx

之前有介绍通过Nginx通过referer防盗链,此方法设置简单,不过referer信息可以伪造,不能达到完全防盗链的目的。

为追求完美可以使用nginx-accesskey模块防盗链,nginx-accesskey会根据不同的请求IP生成不同的key,拒绝无效的请求,经测试可防迅雷盗链。
安装需重新编译Nginx增加nginx-accesskey模块,Lnmp请参考Lnmp平滑升级及修改Nginx版本号。


下载Nginx和nginx-accesskey

wget http://nginx.org/download/nginx-1.0.15.tar.gz
tar zxvf nginx-1.0.15.tar.gz
cd nginx-1.0.15
wget http://wiki.nginx.org/images/5/51/Nginx-accesskey-2.0.3.tar.gz
tar zxvf Nginx-accesskey-2.0.3.tar.gz

修改Nginx-accesskey配置文件:

vim nginx-accesskey-2.0.3/config
#修改$HTTP_ACCESSKEY_MODULE为ngx_http_accesskey_module
USE_MD5=YES
USE_SHA1=YES
ngx_addon_name=ngx_http_accesskey_module
HTTP_MODULES="$HTTP_MODULES ngx_http_accesskey_module"
NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/ngx_http_accesskey_module.c"

编译安装Nginx:

./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module \
--with-http_ssl_module --with-http_gzip_static_module --with-ipv6 --add-module=./nginx-accesskey-2.0.3/
make
make install

编辑Nginx配置文件,添加:

#location / { #限制相应目录
location ~ .*\.(7z|iso|msi|tar|zip|rar|gz|exe)$ { #或限制相应文件
accesskey on;
accesskey_hashmethod md5;
accesskey_arg "key";
accesskey_signature "pass$remote_addr"; #pass为干扰码,可自定义修改
}

Nginx防盗链应用测试:

<?
$ipkey= md5("pass".$_SERVER['REMOTE_ADDR']);
echo "<a href="file.rar">file</a>
";
echo "<a href="file.rar?key=".$ipkey."">file.rar?key=".$ipkey.">file</a>
";
?>

一条评论

  1. Nginx安装配置防盗链模块nginx-accesskey
    avatar
    Lv.1 1楼

    你好,我按你这种方式配置,返回 404是咋回事啊

    发表评论

  1. 😉
  2. 😐
  3. 😡
  4. 😈
  5. 🙂
  6. 😯
  7. 🙁
  8. 🙄
  9. 😛
  10. 😳
  11. 😮
  12. emoji-mrgree
  13. 😆
  14. 💡
  15. 😀
  16. 👿
  17. 😥
  18. 😎
  19. ➡
  20. 😕
  21. ❓
  22. ❗
  23. 63 queries in 0.369 seconds