现在的位置: 首页Nginx>正文
ngx lua实现下载服务器防盗链–实例 [原创]
2012年04月18日 Nginx 评论数 18 ⁄ 被围观 16,743 次+

下载服务器时常被人盗链,时间久了导致服务器大量资源浪费,由于服务器使用nginx做为web服务器。nginx的防盗链方法有很多,可以使用现成的防盗链模块nginx-accesskey-2.0.3,编译ningx时添加此模块即可。
由于服务其他业务需要,所以nginx编译了lua模块,所以就想通过lua来实现下载服务器的防盗链功能,这样就可以免去了accesskey模块。原理就是生成经过处理过的下载链接,然后下载服务器在处理这个下载链接,成功则下载,失败则阻止。下面就是详细的配置实例:(其中要编译nginx添加lua模块支持,可参考:http://www.92csz.com/27/706.html
一、在下载页面生成链接的nginx配置
download.92csz.com的配置:

  1. server   
  2. {   
  3.         listen       80;   
  4.         server_name  download.92csz.com;   
  5.         index index.htm index.html;   
  6.         root  /data/www/download;   
  7.         ssi on;   
  8.   
  9.         location /   
  10.         {   
  11.                 set_by_lua $downkey '   
  12.                         return ngx.md5("encryption" .. ngx.var.remote_addr .. "suffix")   
  13.                 ';   
  14.         }   
  15. }  

注意:要开启ssi才能在html页面中获取nginx自定义变量downkey,这样才能生成经过处理的url,其中字符串encryption和suffix为自定义的,可随便改其他字符,目的是为了生成别人不容易猜解的串。
测试index.html代码:

温馨提示: 此处内容需要添加留言并刷新后方可查看!

本文地址:http://www.92csz.com/36/1120.html
如非注明则为本站原创文章,欢迎转载。转载请注明转载自:moon's blog

1 2 下一页

目前有 18 条留言 其中:访客:13 条, 博主:5 条

  1. 少年药王 : 2012年04月22日12:35:54  1楼

    谢谢分享。确实不错的博文。

    • clairelume : 2012年04月22日13:20:04

      呵呵 ,正好遇到这个实例,就随手记下了 :smile:

  2. clairelume : 2012年04月27日12:54:15  2楼

    在Linux下没有遇到过死的情况,在Windows下倒遇到过几次 :cool:

  3. clairelume : 2012年04月27日12:55:04  3楼

    适合做前端,处理静态文件比较牛

  4. 邋遢猪仔 : 2012年06月03日03:32:17  4楼

    想问下,为什么不做成query string的形式呢?这样rewrite还是可能暴露真实的下载地址。

    • clairelume : 2012年06月03日11:45:19

      暴露真实地址也不怕,根本就下载不了 :smile:

  5. sbear : 2012年06月18日11:22:10  5楼

    打酱油

  6. JJ : 2012年07月13日21:01:57  6楼

    正好用到。。。

  7. AvD : 2012年09月11日09:54:35  7楼

    看看楼主怎样实现的? :razz:

  8. kk : 2012年10月26日16:59:04  8楼

    看看楼主怎样实现的~~

  9. acol : 2012年10月30日20:05:42  9楼

    膜拜大神

  10. pandu : 2013年02月25日15:44:01  10楼

    你好,请问这句
    string.sub(ngx.var.uri, 2, 33) == ngx.md5("encryption" .. ngx.var.remote_addr .. "suffix")
    会成立吗?

    • clairelume : 2013年03月08日10:13:48

      会的,这个要和生成加密串的前缀和后缀一样才可以 :razz:

  11. hemu : 2013年08月19日14:59:07  11楼

    顶楼主

  12. tomz : 2014年01月03日14:12:29  12楼

    路过,写的不错,顶!!!

  13. 潇潇易水 : 2014年03月03日23:16:57  13楼

    非常感谢分享

  14. 潇潇易水 : 2014年03月04日21:17:03  14楼

    请管理员审核一下,想看看index.html代码,谢谢

  15. CJH : 2015年06月03日17:49:04  15楼

    感谢大神分享