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

server  
{  
    listen    80;  
    server_name download.jb51.net;  
    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.jb51.net;  
    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.jb51.net/404.htm redirect;  
        }  
    }  
} 

这样把链接复制给另外一台机器后,就会打开提示错误页面。


标签:
lua,Nginx,盗链,配置,Nginx配置

免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com

《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线

暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。

艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。

《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。