nginx限制連接數(shù)(ngx_http_limit_conn_module)模塊
ngx_http_limit_conn_module 對(duì)于一些服務(wù)器流量異常、負(fù)載過大,甚至是大流量的惡意攻擊訪問等,進(jìn)行并發(fā)數(shù)的限制;該模塊可以根據(jù)定義的鍵來限制每個(gè)鍵值的連接數(shù),只有那些正在被處理的請(qǐng)求(這些請(qǐng)求的頭信息已被完全讀入)所在的連接才會(huì)被計(jì)數(shù)。
該模塊使用漏斗算法(Leaky Bucket),該算法有兩種處理方式Traffic Shaping和Traffic Policing
在桶滿水之后,常見的兩種處理方式為:
暫時(shí)攔截住上方水的向下流動(dòng),等待桶中的一部分水漏走后,再放行上方水。
溢出的上方水直接拋棄。
該模塊提供了兩個(gè)配置參數(shù),limit_conn_zone 和 limit_conn ,其中 limit_conn_zone 只能配置在 http{} 段,而 limit_conn 則可以配置于http{},server{},location{} 區(qū)段中。
第三方模塊編譯安裝參數(shù):
./configure –prefix=/usr/local/webserver/nginx –add-module=/data0/software/nginx_limit_speed_module-master make && make install
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
server {
location /search/ { limit_req zone=one burst=5 nodelay; }
第一段配置
第一個(gè)參數(shù):$binary_remote_addr 表示通過remote_addr這個(gè)標(biāo)識(shí)來做限制,“binary_”的目的是縮寫內(nèi)存占用量,是限制同一客戶端ip地址
第二個(gè)參數(shù):zone=one:10m表示生成一個(gè)大小為10M,名字為one的內(nèi)存區(qū)域,用來存儲(chǔ)訪問的頻次信息
第三個(gè)參數(shù):rate=1r/s表示允許相同標(biāo)識(shí)的客戶端的訪問頻次,這里限制的是每秒1次,還可以有比如30r/m的
第二段配置
第一個(gè)參數(shù):zone=one 設(shè)置使用哪個(gè)配置區(qū)域來做限制,與上面limit_req_zone 里的name對(duì)應(yīng)
第二個(gè)參數(shù):burst=5,重點(diǎn)說明一下這個(gè)配置,burst爆發(fā)的意思,這個(gè)配置的意思是設(shè)置一個(gè)大小為5的緩沖區(qū)當(dāng)有大量請(qǐng)求(爆發(fā))過來時(shí),超過了訪問頻次限制的請(qǐng)求可以先放到這個(gè)緩沖區(qū)內(nèi)
第三個(gè)參數(shù):nodelay,如果設(shè)置,超過訪問頻次而且緩沖區(qū)也滿了的時(shí)候就會(huì)直接返回503,如果沒有設(shè)置,則所有請(qǐng)求會(huì)等待排隊(duì)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/61947.html
nginx限制連接數(shù)(ngx_http_limit_conn_module)模塊 ngx_http_limit_conn_module 對(duì)于一些服務(wù)器流量異常、負(fù)載過大,甚至是大流量的惡意攻擊訪問等,進(jìn)行并發(fā)數(shù)的限制;該模塊可以根據(jù)定義的鍵來限制每個(gè)鍵值的連接數(shù),只有那些正在被處理的請(qǐng)求(這些請(qǐng)求的頭信息已被完全讀入)所在的連接才會(huì)被計(jì)數(shù)。 該模塊使用漏斗算法(Leaky Bucket),該算法有...
nginx限制連接數(shù)(ngx_http_limit_conn_module)模塊 ngx_http_limit_conn_module 對(duì)于一些服務(wù)器流量異常、負(fù)載過大,甚至是大流量的惡意攻擊訪問等,進(jìn)行并發(fā)數(shù)的限制;該模塊可以根據(jù)定義的鍵來限制每個(gè)鍵值的連接數(shù),只有那些正在被處理的請(qǐng)求(這些請(qǐng)求的頭信息已被完全讀入)所在的連接才會(huì)被計(jì)數(shù)。 該模塊使用漏斗算法(Leaky Bucket),該算法有...
摘要:一為什么難秒殺系統(tǒng)難做的原因庫存只有一份,所有人會(huì)在集中的時(shí)間讀和寫這些數(shù)據(jù)。又例如搶票,亦與秒殺類似,瞬時(shí)流量更甚。 一、為什么難 ????秒殺系統(tǒng)難做的原因:庫存只有一份,所有人會(huì)在集中的時(shí)間讀和寫這些數(shù)據(jù)。例如小米手機(jī)每周二的秒殺,可能手機(jī)只有1萬部,但瞬時(shí)進(jìn)入的流量可能是幾百幾千萬。又例如12306搶票,亦與秒殺類似,瞬時(shí)流量更甚。 主要需要解決的問題有兩個(gè): 高并發(fā)對(duì)數(shù)據(jù)庫...
閱讀 1105·2023-04-25 14:35
閱讀 2842·2021-11-16 11:45
閱讀 3443·2021-09-04 16:48
閱讀 2197·2021-08-10 09:43
閱讀 541·2019-08-30 13:17
閱讀 1636·2019-08-29 13:27
閱讀 906·2019-08-26 13:58
閱讀 2166·2019-08-26 13:48