国产探花免费观看_亚洲丰满少妇自慰呻吟_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;          }      }  } 

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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 高碑店市| 江口县| 武山县| 花莲市| 大厂| 镇雄县| 资中县| 荥经县| 肇东市| 拉孜县| 闽侯县| 肃宁县| 封开县| 孝昌县| 北辰区| 长岭县| 新余市| 桂平市| 阿拉尔市| 昔阳县| 怀仁县| 镶黄旗| 兰西县| 温宿县| 五常市| 启东市| 昌黎县| 鹤庆县| 晋江市| 长治县| 中牟县| 彩票| 中方县| 镇原县| 牡丹江市| 湘潭市| 沅江市| 保靖县| 突泉县| 高陵县| 南靖县|