nginx作為正向和反向代理服務(wù)器限制http請(qǐng)求連接數(shù)
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
ngx_http_limit_conn_module模塊1. ngx_http_limit_conn_module模塊根據(jù)設(shè)置的鍵值來(lái)限制連接數(shù)量,如:根據(jù)配置的IP地址來(lái)限制連接數(shù)量。 2. 只有正在被服務(wù)器處理并且請(qǐng)求頭已經(jīng)被讀取的連接才會(huì)被計(jì)算成限制的數(shù)量。 limit_conn_zone指令1. 設(shè)置一塊內(nèi)存區(qū)域,存儲(chǔ)鍵狀態(tài)信息和當(dāng)前的連接數(shù)量。 2. 只能在http塊中設(shè)置,語(yǔ)法為 3. key可以為文本、變量、文本和變量的組合。1.7.6以前的版本只能包含一個(gè)變量。
limit_conn和limit_conn_status指令1. limit_conn指令用于限制指定鍵值的最大連接數(shù)量和共享內(nèi)存區(qū)域。 2. 如果連接超過(guò)限制服務(wù)器返回拒絕請(qǐng)求錯(cuò)誤,默認(rèn)返回狀態(tài)碼為503(可通過(guò)limit_conn_status指令自定義設(shè)置錯(cuò)誤狀態(tài)碼) 3. 在HTTP/2和HTTP/3中每個(gè)并發(fā)請(qǐng)求都是一個(gè)獨(dú)立連接。 4. 語(yǔ)法: 5. 可配置塊: 6. 如,限制每個(gè)IP同一時(shí)間只允許1個(gè)連接:
7. 測(cè)試:jmeter中1秒內(nèi)啟動(dòng)5個(gè)線程請(qǐng)求同一個(gè)資源(請(qǐng)求的圖片約10M確保占用連接時(shí)間較長(zhǎng)) 因?yàn)?/span> 修改限制,同一IP同一時(shí)間允許3個(gè)連接,自定義拒絕請(qǐng)求的錯(cuò)誤狀態(tài)碼為500,設(shè)置如下:
調(diào)整后5個(gè)請(qǐng)求中3個(gè)成功,錯(cuò)誤狀態(tài)碼變?yōu)?00,如下圖: 8. limit_conn指令可配置多個(gè),這些指令同時(shí)生效,如:
9. limit_conn指令會(huì)覆蓋上級(jí)配置塊中的設(shè)置,只有當(dāng)本級(jí)配置塊中沒(méi)有出現(xiàn)limit_conn指令才會(huì)從上級(jí)塊中繼承。 limit_conn_log_level指令1. 用于設(shè)置連接超限后的日志記錄級(jí)別。 2. 語(yǔ)法為 調(diào)整日志級(jí)別:
閱讀原文:原文鏈接 該文章在 2025/7/1 23:44:44 編輯過(guò) |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |