国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > Nginx > 正文

通過lua來配置實現Nginx服務器的防盜鏈功能

2024-08-30 12:26:22
字體:
來源:轉載
供稿:網友

下載服務器時常被人盜鏈,時間久了導致服務器大量資源浪費,由于服務器使用nginx做為web服務器。nginx的防盜鏈方法有很多,可以使用現成的防盜鏈模塊nginx-accesskey-2.0.3,編譯ningx時添加此模塊即可。
由于服務其他業務需要,所以nginx編譯了lua模塊,所以就想通過lua來實現下載服務器的防盜鏈功能(通過lua的Nginx模塊lua_nginx_module、這里不再詳細介紹配置過程),這樣就可以免去了accesskey模塊。原理就是生成經過處理過的下載鏈接,然后下載服務器在處理這個下載鏈接,成功則下載,失敗則阻止。下面就是詳細的配置實例:
一、在下載頁面生成鏈接的nginx配置
download.Vevb.com的配置:

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

這樣把鏈接復制給另外一臺機器后,就會打開提示錯誤頁面。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 都兰县| 峡江县| 兴化市| 岳阳市| 广宁县| 兴隆县| 景东| 房产| 遵化市| 济南市| 缙云县| 都江堰市| 苍溪县| 鄂州市| 蓬莱市| 丰原市| 曲水县| 湘潭县| 当涂县| 白水县| 克东县| 大姚县| 林甸县| 全椒县| 乐平市| 马山县| 阳新县| 合川市| 泸州市| 云梦县| 辽宁省| 加查县| 武平县| 油尖旺区| 鄂伦春自治旗| 罗定市| 罗定市| 蚌埠市| 西乌珠穆沁旗| 隆回县| 休宁县|