国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網(wǎng)站 > Nginx > 正文

Nginx防御DDOS攻擊的配置方法教程

2024-08-30 12:22:16
字體:
供稿:網(wǎng)友
Nginx是一款輕量級(jí)的Web服務(wù)器,由俄羅斯的程序設(shè)計(jì)師Igor Sysoev所開發(fā),最初供俄國(guó)大型的入口網(wǎng)站及搜尋引Rambler使用。 下面這篇文章主要給大家介紹了關(guān)于Nginx防御DDOS攻擊的配置方法,需要的朋友可以參考下。

前言

Nginx是一款輕量級(jí)的Web服務(wù)器,由俄羅斯的程序設(shè)計(jì)師Igor Sysoev所開發(fā),最初供俄國(guó)大型的入口網(wǎng)站及搜尋引Rambler使用。 其特點(diǎn)是占有內(nèi)存少,并發(fā)能力強(qiáng),事實(shí)上Nginx的并發(fā)能力確實(shí)在同類型的網(wǎng)站服務(wù)器中表現(xiàn)較好。

防御DDOS是一個(gè)系統(tǒng)工程,攻擊花樣多,防御的成本高瓶頸多,防御起來即被動(dòng)又無奈。DDOS的 特點(diǎn)是分布式,針對(duì)帶寬和服務(wù)攻擊,也就是四層流量攻擊和七層應(yīng)用攻擊,相應(yīng)的防御瓶頸四層在帶寬,七層的多在架構(gòu)的吞吐量。對(duì)于七層的應(yīng)用攻擊,我們還 是可以做一些配置來防御的,例如前端是Nginx,主要使用nginx的http_limit_conn和http_limit_req模塊來防御。 ngx_http_limit_conn_module 可以限制單個(gè)IP的連接數(shù),ngx_http_limit_req_module 可以限制單個(gè)IP每秒請(qǐng)求數(shù),通過限制連接數(shù)和請(qǐng)求數(shù)能相對(duì)有效的防御CC攻擊。

下面這篇文章主要給大家介紹了關(guān)于Nginx防御DDOS攻擊的配置方法,分享出來供打擊參考學(xué)習(xí),下面來一起看看詳細(xì)的介紹:

下面是配置方法:

一. 限制每秒請(qǐng)求數(shù)

ngx_http_limit_req_module模塊通過漏桶原理來限制單位時(shí)間內(nèi)的請(qǐng)求數(shù),一旦單位時(shí)間內(nèi)請(qǐng)求數(shù)超過限制,就會(huì)返回503錯(cuò)誤。配置需要在兩個(gè)地方設(shè)置:

nginx.conf的http段內(nèi)定義觸發(fā)條件,可以有多個(gè)條件

在location內(nèi)定義達(dá)到觸發(fā)條件時(shí)nginx所要執(zhí)行的動(dòng)作

例如:

http {  limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s; //觸發(fā)條件,所有訪問ip 限制每秒10個(gè)請(qǐng)求  ...  server {   ...   location ~ /.php$ {    limit_req zone=one burst=5 nodelay; //執(zhí)行的動(dòng)作,通過zone名字對(duì)應(yīng)     }    }   } 

參數(shù)說明:

$binary_remote_addr 二進(jìn)制遠(yuǎn)程地址 zone=one:10m 定義zone名字叫one,并為這個(gè)zone分配10M內(nèi)存,用來存儲(chǔ)會(huì)話(二進(jìn)制遠(yuǎn)程地址),1m內(nèi)存可以保存16000會(huì)話 rate=10r/s; 限制頻率為每秒10個(gè)請(qǐng)求 burst=5 允許超過頻率限制的請(qǐng)求數(shù)不多于5個(gè),假設(shè)1、2、3、4秒請(qǐng)求為每秒9個(gè),那么第5秒內(nèi)請(qǐng)求15個(gè)是允許的,反之,如果第一秒內(nèi)請(qǐng)求15個(gè),會(huì)將5個(gè)請(qǐng)求放到第二秒,第二秒內(nèi)超過10的請(qǐng)求直接503,類似多秒內(nèi)平均速率限制。 nodelay 超過的請(qǐng)求不被延遲處理,設(shè)置后15個(gè)請(qǐng)求在1秒內(nèi)處理。

二.限制IP連接數(shù)

ngx_http_limit_conn_module的配置方法和參數(shù)與http_limit_req模塊很像,參數(shù)少,要簡(jiǎn)單很多

http {  limit_conn_zone $binary_remote_addr zone=addr:10m; //觸發(fā)條件  ...  server {   ...   location /download/ {    limit_conn addr 1; // 限制同一時(shí)間內(nèi)1個(gè)連接,超出的連接返回503     }    }  } 

三.白名單設(shè)置

http_limit_conn 和http_limit_req模塊限制了單ip單位時(shí)間內(nèi)的并發(fā)和請(qǐng)求數(shù),但是如果Nginx前面有l(wèi)vs或者h(yuǎn)aproxy之類的負(fù)載均衡或者反向代 理,nginx獲取的都是來自負(fù)載均衡的連接或請(qǐng)求,這時(shí)不應(yīng)該限制負(fù)載均衡的連接和請(qǐng)求,就需要geo和map模塊設(shè)置白名單:

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 绥宁县| 聂拉木县| 茌平县| 宜昌市| 白朗县| 炎陵县| 思南县| 伊金霍洛旗| 浮山县| 潢川县| 阳山县| 富宁县| 罗平县| 璧山县| 威宁| 鹤庆县| 岳阳县| 阿巴嘎旗| 长武县| 钦州市| 上蔡县| 闸北区| 洪洞县| 洪江市| 邛崃市| 普洱| 元朗区| 武平县| 都江堰市| 阿拉善左旗| 阿拉善盟| 辽宁省| 永靖县| 麻江县| 龙陵县| 井冈山市| 体育| 麦盖提县| 广丰县| 安龙县| 南乐县|