一、nginx防盜鏈設置白名單
1、為什麼要設置白名單?
對於某些需要公開訪問的資源,比如圖片等,我們是允許其他網站引用的,這時候我們就需要設置白名單,白名單內的域名可以訪問我們的資源,其他域名則不能訪問。
2、如何設置白名單?
location / { valid_referers none blocked example.com *.example.com; if ($invalid_referer) { return 403; } }
代碼解釋:
第一行valid_referers none blocked example.com *.example.com;表示設置白名單,只允許example.com和其子域名引用,其他域名被視為無效referer。
第二行if ($invalid_referer) {return 403;}表示當referer為非法域名時拒絕訪問。
二、nginx防止ddos
1、什麼是ddos攻擊?
ddos(分散式拒絕服務攻擊)是指利用多台計算機對一個或多個目標發動攻擊,以至於伺服器壓力過大而導致服務拒絕。
2、如何防止ddos攻擊?
http { limit_conn_zone $binary_remote_addr zone=perip:10m; limit_conn perip 10; } server { location / { limit_req zone=perip burst=20 nodelay; } }
代碼解釋:
第一段代碼設置了限制連接的數量,每個ip地址最多同時連接10次。
第二段代碼設置了限制請求的數量,每個ip地址每秒最多發送20個請求,超過的部分將被延遲到下一秒發送。
三、nginx防盜鏈原理
1、什麼是盜鏈?
盜鏈是指用戶在未經授權的情況下,將別人的圖片或網頁嵌入自己的網頁中,從而消耗伺服器帶寬和資源,導致資源浪費。
2、如何防止盜鏈?
在圖片等資源被訪問時,nginx會根據請求頭Referer來判斷請求是否合法,若合法則正常返回,否則返回403許可權不足錯誤。
我們可以通過設置白名單等方式來控制合法referer的範圍,從而有效防止盜鏈。
四、nginx防ddos
1、ddos攻擊的危害?
ddos攻擊可以導致網站癱瘓,用戶無法正常訪問,影響網站的正常運作。
2、如何防止ddos攻擊?
我們可以使用nginx防範ddos攻擊的方法:
(1)控制連接數量:設置最大連接數和最大請求數,防止客戶端對伺服器進行頻繁的連接和請求。
(2)設置超時時間:當客戶端連接持續過長時間時,伺服器將自動斷開連接,防止攻擊者長時間佔用伺服器資源。
(3)使用高效的緩存策略和請求處理方式:使用緩存技術可以減輕伺服器壓力,防止攻擊者對後端伺服器進行攻擊。
五、nginx防盜鏈配置
1、常用的防盜鏈配置方式
location / { if ($http_referer !~ "^http://(www\.)?example.com") { return 403; } }
代碼解釋:
當請求頭Referer不是以http://www.example.com或http://example.com開頭時,返回403許可權不足錯誤。
六、nginx防盜鏈本地圖片載入失敗
1、如何防止本地圖片被盜鏈?
location / { valid_referers none blocked example.com *.example.com; if ($invalid_referer) { root html/404; rewrite ^(.*)$ /404.jpg break; } }
代碼解釋:
當請求頭Referer非法時,將請求重定向到一個特定的路徑,顯示一張本地的圖片而不是被盜鏈的圖片。
七、nginx防盜鏈的作用
1、為什麼要防止盜鏈?
防止盜鏈可以減少伺服器資源浪費,提高服務安全性和穩定性,保障網站的正常運作。
2、怎麼做防盜鏈?
可以使用nginx的防盜鏈策略,設置白名單或者根據Referer來判斷請求是否合法,以此達到防盜鏈的目的。
八、nginx防盜鏈lua
1、什麼是lua?
Lua是一種輕量級腳本語言,被廣泛應用於遊戲開發、圖形應用、網路編程、嵌入式系統等領域。
2、如何使用lua實現防盜鏈?
location / { access_by_lua_block { local referer = ngx.var.http_referer if referer ~= nil then if not ngx.re.match(referer, "^http[s]?://example.com") then ngx.exit(ngx.HTTP_FORBIDDEN) end else ngx.exit(ngx.HTTP_FORBIDDEN) end } }
代碼解釋:
使用access_by_lua_block指令,在訪問每一個請求時都會執行lua代碼,根據Referer頭部來判斷請求是否合法。
九、nginx防盜鏈設置教程
1、如何設置白名單防盜鏈?
首先在nginx.conf中配置valid_referers指令,設置允許的域名,然後在location中添加判斷條件,當請求頭Referer非法時返回403錯誤。
http { ... server { location / { valid_referers none blocked example.com *.example.com; if ($invalid_referer) { return 403; } ... } } ... }
2、如何使用lua腳本來防盜鏈?
使用access_by_lua_block指令,在訪問每一個請求時都會執行lua代碼,判斷請求頭Referer是否合法,若不合法則返回403錯誤。
http { ... server { location / { access_by_lua_block { local referer = ngx.var.http_referer if referer ~= nil then if not ngx.re.match(referer, "^http[s]?://example.com") then ngx.exit(ngx.HTTP_FORBIDDEN) end else ngx.exit(ngx.HTTP_FORBIDDEN) end } ... } } ... }
十、nginx防盜鏈設置方法
1、通過nginx.conf文件進行設置
在nginx.conf中配置valid_referers指令,設置允許的域名,然後在location中添加判斷條件,當請求頭Referer非法時返回403錯誤。
2、使用lua腳本進行防盜鏈設置
使用access_by_lua_block指令,在訪問每一個請求時都會執行lua代碼,判斷請求頭Referer是否合法,若不合法則返回403錯誤。
原創文章,作者:CHFVW,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/325241.html