nginx限制并發(fā)連接請求數(shù)的方法
簡介
限制并發(fā)連接數(shù)的模塊為:http_limit_conn_module,地址:http://nginx.org/en/docs/http/ngx_http_limit_conn_module.html
限制并發(fā)請求數(shù)的模塊為:http_limit_req_module,地址:http://nginx.org/en/docs/http/ngx_http_limit_req_module.html
這兩個模塊都是默認(rèn)編譯進(jìn)Nginx中的。
限制并發(fā)連接數(shù)
示例配置:
http {
limit_conn_zone $binary_remote_addr zone=addr:10m;
#limit_conn_zone $server_name zone=perserver:10m;
server {
limit_conn addr 1;
limit_conn_log_level warn;
limit_conn_status 503;
}
}
limit_conn_zone key zone=name:size; 定義并發(fā)連接的配置
- 可定義的模塊為http模塊。
- key關(guān)鍵字是根據(jù)什么變量來限制連接數(shù),示例中有binary_remote_addr、$server_name,根據(jù)實際業(yè)務(wù)需求。
- zone定義配置名稱和最大共享內(nèi)存,若占用的內(nèi)存超過最大共享內(nèi)存,則服務(wù)器返回錯誤
示例中的$binary_remote_addr是二進(jìn)制的用戶地址,用二進(jìn)制來節(jié)省字節(jié)數(shù),減少占用共享內(nèi)存的大小。
limit_conn zone number; 并發(fā)連接限制
- 可定義模塊為http、server、location模塊
- zone為指定使用哪個limit_conn_zone配置
- number為限制連接數(shù),示例配置中限制為 1 個連接。
limit_conn_log_level info | notice | warn | error ; 限制發(fā)生時的日志級別
- 可定義模塊為http、server、location模塊
limit_conn_status code; 限制發(fā)生時的返回錯誤碼,默認(rèn)503
- 可定義模塊為http、server、location模塊
限制并發(fā)請求數(shù)
limit_req_zone key zone=name:size rate=rate; 定義限制并發(fā)請求的配置。
- 若占用的內(nèi)存超過最大共享內(nèi)存,則服務(wù)器返回錯誤響應(yīng)
- rate定義的是請求速率,如10r/s 每秒傳遞10個請求,10r/m 每分鐘傳遞10個請求
limit_req zone=name [burst=number] [nodelay | delay=number];
- zone 定義使用哪個 limit_req_zone配置
- burst=number 設(shè)置桶可存放的請求數(shù),就是請求的緩沖區(qū)大小
- nodelay burst桶的請求不再緩沖,直接傳遞,rate請求速率失效。
- delay=number 第一次接收請求時,可提前傳遞number個請求。
limit_req_log_level info | notice | warn | error; 限制發(fā)生時的日志級別
- 可定義模塊為http、server、location模塊
limit_req_status code;限制發(fā)生時的錯誤碼
- 可定義模塊為http、server、location模塊
示例配置1
http {
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
limit_req zone=one burst=5;
}
請求速率為每秒傳遞1個請求。burst桶大小可存放5個請求。超出限制的請求會返回錯誤。
示例配置2
http {
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
limit_req zone=one burst=5 nodelay;
}
示例配置2是在示例配置1當(dāng)中添加了nodelay選項。那么rate請求速率則不管用了。會直接傳遞burst桶中的所有請求。超出限制的請求會返回錯誤。
示例配置3
http {
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
limit_req zone=one burst=5 delay=3;
}
示例配置3是在示例配置1當(dāng)中添加了delay=3選項。表示前3個請求會立即傳遞,然后其他請求會按請求速率傳遞。超出限制的請求會返回錯誤。
到此這篇關(guān)于nginx限制并發(fā)連接請求數(shù)的方法的文章就介紹到這了,更多相關(guān)nginx限制并發(fā)連接請求數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
nginx開啟ws訪問和4層負(fù)載的編譯參數(shù)示例
這篇文章主要為大家介紹了nginx開啟ws訪問和4層負(fù)載的編譯參數(shù),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07
Nginx設(shè)置Referer來防止盜圖的實現(xiàn)方法
這篇文章主要介紹了Nginx設(shè)置Referer來防止盜圖的實現(xiàn)方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-04-04
Nginx配置四層、七層網(wǎng)絡(luò)代理轉(zhuǎn)發(fā)的方法示例
nginx作為透明代理可以充分利用其高性能和靈活性來實現(xiàn)網(wǎng)絡(luò)流量的轉(zhuǎn)發(fā)和處理,本文主要介紹了Nginx配置四層、七層網(wǎng)絡(luò)代理轉(zhuǎn)發(fā)的方法示例,具有一定的參考價值,感興趣的可以了解一下2024-03-03
針對OpenSSL安全漏洞調(diào)整Nginx服務(wù)器的方法
這篇文章主要介紹了針對OpenSSL漏洞調(diào)整Nginx服務(wù)器的方法,2014年爆出的SSL安全漏洞震驚了全世界,需要的朋友可以參考下2015-06-06
Nginx 平滑升級的實現(xiàn)(拒絕服務(wù)漏洞)
本文主要介紹了Nginx 平滑升級的實現(xiàn)(拒絕服務(wù)漏洞),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-02-02

