欢迎您,零度科技专业海外服务器租用
公司电话: 24小时电话: 

当前位置:首页>帮助教程>Linux 系统教程

目录导航

nginx 下载服务器防盗链

添加于 2014-09-23  

Linux 系统教程

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

一、在下载页面生成链接的nginx配置

download.ldisp.com的配置:
server   
{   
        listen       80;   
        server_name  download.92csz.com;   
        index index.htm index.html;   
        root  /data/www/download;   
        ssi on;   
  
        location /   
        {   
                set_by_lua $downkey '   
                        return ngx.md5("encryption" .. ngx.var.remote_addr .. "suffix")   
                ';   
        }   
}  
注意:要开启ssi才能在html页面中获取nginx自定义变量downkey,这样才能生成经过处理的url,其中字符串encryption和suffix为自定义的,可随便改其他字符,目的是为了生成别人不容易猜解的串。 测试index.html代码:

二、下载服务器nginx配置:

server   
{   
        listen       80;   
        server_name  down.92csz.com;   
        index index.htm index.html;   
        root  /data/www/down;   
        limit_conn   one  1;   
        set $limit_rate  1000k;   
  
    location /   
        {   
                set_by_lua $foo '   
                        if string.sub(ngx.var.uri, 2, 33) == ngx.md5("encryption" .. ngx.var.remote_addr .. "suffix") then   
                                return 1  
                        else  
                                return 0  
                        end   
                ';   
  
                if ($foo = 1)   
                {   
                        rewrite "^/([0-9a-z]{32})(.*?)$"        $2 break;   
                }   
                if ($foo = 0)   
                {   
                        rewrite ^/ http://download.92csz.com/404.htm redirect;   
                }   
        }   
}
测试结果:这个链接复制给另外一台机器后,打开提示错误页面
nginx 下载服务器防盗链-图片1
nginx 下载服务器防盗链-图片1

nginx 下载服务器防盗链-图片2
nginx 下载服务器防盗链-图片2

到零度科技查看原文:http://www.ldisp.com/a/linux/2014/nginx-download-limit.shtml

上一篇:nginx 手机站自动跳转配置
下一篇:网络分析shell脚本(实时流量+连接统计)

 
了解零度?

零度科技主营全球服务器租用,如果您有服务器租用需求请联系

海外服务器租用

推荐香港、美国、韩国。提供站群服务器、高防服务器租用

海外特价服务器

关注零度特价服务器频道,了解全球特价服务器。

0

业务咨询

    技术服务

      特价活动
        全站搜索
        热门搜索:
        会员
        0通知
        客服
        0特价
        搜索
        TOP
        香港高防服务器,远程桌面,韩国服务器,nginx,反向代理