Nginx服務(wù)器限速功能(一)
發(fā)布時間:2021-03-31 作者:未知
簡述:我們都知道Nginx服務(wù)器有一個十分有用的限速功能,但是它卻常常被錯誤配置。今天我們就來聊一聊它的限速功能。這個功能用來限制用戶在某此時間段內(nèi)請求的的HTTP請求數(shù),此請求應(yīng)該是GET或POST來發(fā)出
我們都知道Nginx服務(wù)器有一個十分有用的限速功能,但是它卻常常被錯誤配置。今天我們就來聊一聊它的限速功能。這個功能用來限制用戶在某此時間段內(nèi)請求的的HTTP請求數(shù),此請求應(yīng)該是 GET 或POST 來發(fā)出的請求。...我們都知道Nginx服務(wù)器有一個十分有用的限速功能,但是它卻常常被錯誤配置。今天我們就來聊一聊它的限速功能。這個功能用來限制用戶在某此時間段內(nèi)請求的的HTTP請求數(shù),此請求應(yīng)該是 GET 或POST 來發(fā)出的請求。這個限速功能常常被應(yīng)用于網(wǎng)絡(luò)安全方面。比如減慢暴力密碼破解的攻擊,爬蟲對網(wǎng)頁的抓取,防止DDOS攻擊等。通過它來限制和過濾為為真實用戶的標(biāo)準(zhǔn)數(shù)值,它會把來源URL等信息寫到系統(tǒng)日志中。更確切地說,這個功能常用于提供極少量的應(yīng)用服務(wù)器,用戶訪問量不多,但卻常常癱瘓的問題。在本文中,我們將詳細(xì)介紹Nginx的速率限制基礎(chǔ)及更高級的配置。值得一提的是,Nginx限速的工作原理與Nginx Plus相同。Nginx限速是怎樣工作的Nginx限速使用 Leaky(唝水桶)算法,比喻為水桶頂部倒水,底部漏水,如果倒入水的速率超過漏水的速度,則水桶漏出。在電信網(wǎng)絡(luò)和分組交換網(wǎng)絡(luò)中,帶寬有限的情況下該算法使用場景較多。就請求處理而言,水代表客戶端的請求,存水的桶按先進(jìn)先出(FIFO)調(diào)度算法處理的隊列。漏出的水表示退出緩沖區(qū)等服務(wù)器處理,而溢出表示請被丟棄且不再提供服務(wù)。配置基本的速率限制速率限制主要有2個主要指令,limit_req_zone和limit_req。如下代碼:limit_req_zone指令定義了速度限制的參數(shù),同時在出現(xiàn)的上下文中啟用速率限制。(在本例中是針對于 /login/ URI的所有請求)limit_requ_zone 指令通常定義在HTTP塊中,這樣可以用于多個上下文。它包含3個參數(shù):Key - 定義應(yīng)用限制的請求特征。 在這個例子中,它是Nginx變量$binary_remote_addr ,它保存著客戶端IP地址的二進(jìn)制表示。 這意味著我們將每個唯一的IP地址限制為由第三個參數(shù)定義的請求速率(我們使用這個變量,因為它比客戶端IP地址的字符串表示$remote_addr占用更少的空間)。Zone - 定義用于存儲每個IP地址狀態(tài)的共享內(nèi)存區(qū)域以及訪問請求受限URL的頻率。 將信息保存在共享內(nèi)存中意味著它可以在Nginx工作進(jìn)程之間共享。
點擊展開全文
鄭州騰佑科技有限公司(以下簡稱“騰佑科技”)成立于2009年, 總部位于鄭州,是 一家致力于互聯(lián)網(wǎng)服務(wù)業(yè)的高新技術(shù)企業(yè),公司主營業(yè)務(wù)以互聯(lián)網(wǎng)數(shù)據(jù)中心、云計算、人 工智能、軟件開發(fā)、安全服務(wù)“互聯(lián)網(wǎng)+”行業(yè)解決方案及行業(yè)應(yīng)用等相關(guān)業(yè)務(wù)。
售前咨詢熱線:400-996-8756
備案提交:0371-89913068
售后客服:0371-89913000
熱門活動