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