通過lua來配置實(shí)現(xiàn)Nginx服務(wù)器的防盜鏈功能
下載服務(wù)器時(shí)常被人盜鏈,時(shí)間久了導(dǎo)致服務(wù)器大量資源浪費(fèi),由于服務(wù)器使用nginx做為web服務(wù)器。nginx的防盜鏈方法有很多,可以使用現(xiàn)成的防盜鏈模塊nginx-accesskey-2.0.3,編譯ningx時(shí)添加此模塊即可。
由于服務(wù)其他業(yè)務(wù)需要,所以nginx編譯了lua模塊,所以就想通過lua來實(shí)現(xiàn)下載服務(wù)器的防盜鏈功能(通過lua的Nginx模塊lua_nginx_module、這里不再詳細(xì)介紹配置過程),這樣就可以免去了accesskey模塊。原理就是生成經(jīng)過處理過的下載鏈接,然后下載服務(wù)器在處理這個(gè)下載鏈接,成功則下載,失敗則阻止。下面就是詳細(xì)的配置實(shí)例:
一、在下載頁面生成鏈接的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,這樣才能生成經(jīng)過處理的url,其中字符串encryption和suffix為自定義的,可隨便改其他字符,目的是為了生成別人不容易猜解的串。
測(cè)試index.html代碼:
二、下載服務(wù)器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; } } }
這樣把鏈接復(fù)制給另外一臺(tái)機(jī)器后,就會(huì)打開提示錯(cuò)誤頁面。
相關(guān)文章
Nginx使用Lua模塊實(shí)現(xiàn)WAF的原理解析
waf是通過執(zhí)行一系列針對(duì)HTTP/HTTPS的安全策略來專門為Web應(yīng)用提供保護(hù)的一款產(chǎn)品,本文重點(diǎn)給大家介紹Nginx使用Lua模塊實(shí)現(xiàn)WAF的原理,需要的朋友參考下吧2021-09-09Nginx?error_page自定義錯(cuò)誤頁面設(shè)置過程
這篇文章主要介紹了Nginx?error_page自定義錯(cuò)誤頁面設(shè)置過程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12Nginx報(bào):Nginx?-?504?Gateway?Time-out問題解決辦法
這篇文章主要給大家介紹了關(guān)于Nginx報(bào):Nginx?-?504?Gateway?Time-out問題的解決辦法,一般是由于程序執(zhí)行時(shí)間過長(zhǎng)導(dǎo)致響應(yīng)超時(shí),例如程序需要執(zhí)行90秒,而nginx最大響應(yīng)等待時(shí)間為30秒,這樣就會(huì)出現(xiàn)超時(shí),需要的朋友可以參考下2024-01-01基于Nginx實(shí)現(xiàn)HTTPS網(wǎng)站設(shè)置的步驟
本文主要介紹了Nginx實(shí)現(xiàn)HTTPS網(wǎng)站設(shè)置的步驟,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08