nginx限制并發(fā)連接請(qǐng)求數(shù)的方法
簡(jiǎn)介
限制并發(fā)連接數(shù)的模塊為:http_limit_conn_module,地址:http://nginx.org/en/docs/http/ngx_http_limit_conn_module.html
限制并發(fā)請(qǐng)求數(shù)的模塊為:http_limit_req_module,地址:http://nginx.org/en/docs/http/ngx_http_limit_req_module.html
這兩個(gè)模塊都是默認(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ù)什么變量來(lái)限制連接數(shù),示例中有binary_remote_addr、$server_name,根據(jù)實(shí)際業(yè)務(wù)需求。
- zone定義配置名稱和最大共享內(nèi)存,若占用的內(nèi)存超過(guò)最大共享內(nèi)存,則服務(wù)器返回錯(cuò)誤
示例中的$binary_remote_addr
是二進(jìn)制的用戶地址,用二進(jìn)制來(lái)節(jié)省字節(jié)數(shù),減少占用共享內(nèi)存的大小。
limit_conn zone number; 并發(fā)連接限制
- 可定義模塊為http、server、location模塊
- zone為指定使用哪個(gè)limit_conn_zone配置
- number為限制連接數(shù),示例配置中限制為 1 個(gè)連接。
limit_conn_log_level info | notice | warn | error ; 限制發(fā)生時(shí)的日志級(jí)別
- 可定義模塊為http、server、location模塊
limit_conn_status code; 限制發(fā)生時(shí)的返回錯(cuò)誤碼,默認(rèn)503
- 可定義模塊為http、server、location模塊
限制并發(fā)請(qǐng)求數(shù)
limit_req_zone key zone=name:size rate=rate; 定義限制并發(fā)請(qǐng)求的配置。
- 若占用的內(nèi)存超過(guò)最大共享內(nèi)存,則服務(wù)器返回錯(cuò)誤響應(yīng)
- rate定義的是請(qǐng)求速率,如10r/s 每秒傳遞10個(gè)請(qǐng)求,10r/m 每分鐘傳遞10個(gè)請(qǐng)求
limit_req zone=name [burst=number] [nodelay | delay=number];
- zone 定義使用哪個(gè) limit_req_zone配置
- burst=number 設(shè)置桶可存放的請(qǐng)求數(shù),就是請(qǐng)求的緩沖區(qū)大小
- nodelay burst桶的請(qǐng)求不再緩沖,直接傳遞,rate請(qǐng)求速率失效。
- delay=number 第一次接收請(qǐng)求時(shí),可提前傳遞number個(gè)請(qǐng)求。
limit_req_log_level info | notice | warn | error; 限制發(fā)生時(shí)的日志級(jí)別
- 可定義模塊為http、server、location模塊
limit_req_status code;限制發(fā)生時(shí)的錯(cuò)誤碼
- 可定義模塊為http、server、location模塊
示例配置1
http { limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s; limit_req zone=one burst=5; }
請(qǐng)求速率為每秒傳遞1個(gè)請(qǐng)求。burst桶大小可存放5個(gè)請(qǐng)求。超出限制的請(qǐng)求會(huì)返回錯(cuò)誤。
示例配置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
選項(xiàng)。那么rate請(qǐng)求速率則不管用了。會(huì)直接傳遞burst桶中的所有請(qǐng)求。超出限制的請(qǐng)求會(huì)返回錯(cuò)誤。
示例配置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
選項(xiàng)。表示前3個(gè)請(qǐng)求會(huì)立即傳遞,然后其他請(qǐng)求會(huì)按請(qǐng)求速率傳遞。超出限制的請(qǐng)求會(huì)返回錯(cuò)誤。
到此這篇關(guān)于nginx限制并發(fā)連接請(qǐng)求數(shù)的方法的文章就介紹到這了,更多相關(guān)nginx限制并發(fā)連接請(qǐng)求數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- nginx配置限制同一個(gè)ip的訪問(wèn)頻率方法
- Nginx限制IP訪問(wèn)某些頁(yè)面的操作
- 基于Nginx實(shí)現(xiàn)限制某IP短時(shí)間訪問(wèn)次數(shù)
- nginx請(qǐng)求限制配置方法
- 教你使用Nginx限制百度蜘蛛頻繁抓取的問(wèn)題
- nginx帶寬限制?limit_rate?limit_rate_after指令
- nginx并發(fā)數(shù)限制limit_conn基本語(yǔ)法
- 詳解如何在Nginx中設(shè)置文件上傳大小限制
- nginx限制ip訪問(wèn)頻率的實(shí)現(xiàn)示例
- nginx如何限制訪問(wèn)某些url
- Nginx之QPS限制模塊的具體使用
相關(guān)文章
Mac環(huán)境Nginx配置和訪問(wèn)本地靜態(tài)資源的實(shí)現(xiàn)
這篇文章主要介紹了Mac環(huán)境Nginx配置和訪問(wèn)本地靜態(tài)資源的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09Nginx設(shè)置成服務(wù)并開機(jī)自動(dòng)啟動(dòng)的配置
Nginx?是一個(gè)高性能的HTTP和反向代理web服務(wù)器,同時(shí)也提供了IMAP/POP3/SMTP服務(wù),接下來(lái)通過(guò)本文給大家介紹Nginx設(shè)置成服務(wù)并開機(jī)自動(dòng)啟動(dòng)的配置,需要的朋友可以參考下2022-01-01Nginx Lua 根據(jù)參數(shù)請(qǐng)求轉(zhuǎn)發(fā)的實(shí)現(xiàn)
本文介紹了如何使用Nginx和Lua腳本實(shí)現(xiàn)基于參數(shù)的請(qǐng)求轉(zhuǎn)發(fā),文章詳細(xì)說(shuō)明了配置方法,并提供了示例代碼,幫助讀者理解如何通過(guò)NginxLua模塊根據(jù)請(qǐng)求參數(shù)將流量轉(zhuǎn)發(fā)到不同后端服務(wù),這種方法有助于實(shí)現(xiàn)靈活的負(fù)載均衡和動(dòng)態(tài)內(nèi)容處理2022-05-05Docker Nginx容器和Tomcat容器實(shí)現(xiàn)負(fù)載均衡與動(dòng)靜分離操作
這篇文章主要介紹了Docker Nginx容器和Tomcat容器實(shí)現(xiàn)負(fù)載均衡與動(dòng)靜分離操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-11-11