DDOS是一種經過大流量的請求對目標進行轟炸式訪問,致使提供服務的服務器資源耗盡進而沒法繼續提供服務的攻擊手段。html
通常狀況下,攻擊者經過大量請求與鏈接使服務器處於飽和狀態,以致於沒法接受新的請求或變得很慢。後端
應用層DDOS攻擊的特徵服務器
應用層(七層/HTTP層)DDOS攻擊一般由木馬程序發起,其能夠經過設計更好的利用目標系統的脆弱點。例如,對於沒法處理大量併發請求的系統,僅僅經過創建大量的鏈接,並週期性的發出少許數據包來保持會話就能夠耗盡系統的資源,使其沒法接受新的鏈接請求達到DDOS的目的。其餘還有采用發送大量鏈接請求發送大數據包的請求進行攻擊的形式。由於攻擊是由木馬程序發起,攻擊者能夠在很短期內快速創建大量的鏈接,併發出大量的請求。網絡
如下是一些DDOS的特證,咱們能夠據此特徵來抵抗DDOS(包括但不限於):架構
攻擊常常來源於一些相對固定的IP或IP段,每一個IP都有遠大於真實用戶的鏈接數和請求數。併發
備註:這並不代表這種請求都是表明着DDOS攻擊。在不少使用NAT的網絡架構中,不少的客戶端使用網關的IP地址訪問公網資源。可是,即使如此,這樣的請求數和鏈接數也會遠少於DDOS攻擊。大數據
由於攻擊是由木馬發出且目的是使服務器超負荷,請求的頻率會遠遠超過正常人的請求。阿里雲
User-Agent一般是一個非標準的值設計
Referer有時是一個容易聯想到攻擊的值代理
使用Nginx、Nginx Plus抵抗DDOS攻擊
我有幾張阿里雲幸運券分享給你,用券購買或者升級阿里雲相應產品會有特惠驚喜哦!把想要買的產品的幸運券都領走吧!快下手,立刻就要搶光了。
結合上面提到的DDOS攻擊的特徵,Nginx、Nginx Plus有不少的特性能夠用來有效的防護DDOS攻擊,能夠從調整入口訪問流量和控制反向代理到後端服務器的流量兩個方面來達到抵禦DDOS攻擊的目的。
限制請求速度
設置Nginx、Nginx Plus的鏈接請求在一個真實用戶請求的合理範圍內。好比,若是你以爲一個正經常使用戶每兩秒能夠請求一次登陸頁面,你就能夠設置Nginx每兩秒鐘接收一個客戶端IP的請求(大約等同於每分鐘30個請求)。
limit_req_zone $binary_remote_addr zone=one:10m rate=30r/m;
server {
...
location /login.html {
limit_req zone=one;
...
}
}
`limit_req_zone`命令設置了一個叫one的共享內存區來存儲請求狀態的特定鍵值,在上面的例子中是客戶端IP($binary_remote_addr)。location塊中的`limit_req`經過引用one共享內存區來實現限制訪問/login.html的目的。
限制鏈接數量
設置Nginx、Nginx Plus的鏈接數在一個真實用戶請求的合理範圍內。好比,你能夠設置每一個客戶端IP鏈接/store不能夠超過10個。