欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

nginx 限速之limit_conn的使用

 更新時(shí)間:2023年10月24日 11:21:20   作者:木華思流年  
通過(guò)nginx我們有三種限速方式分別是: 限制請(qǐng)求數(shù)(request),限制連接數(shù)(connection),限制響應(yīng)速度(rate),本文就來(lái)介紹一下nginx 限速之limit_conn的使用,ngx_http_limit_conn_module 模塊主要是用于根據(jù)特定的key來(lái)限制連接的數(shù)量,感興趣的可以了解一下

在工作中經(jīng)常會(huì)遇到用戶大量請(qǐng)求某個(gè)接口和一些大流量的惡意攻擊,可以通過(guò)nginx對(duì)同一個(gè)ip的連接數(shù),請(qǐng)求,進(jìn)行限制.

通過(guò)nginx我們有三種限速方式分別是: 限制請(qǐng)求數(shù)(request),限制連接數(shù)(connection),限制響應(yīng)速度(rate),分別對(duì)應(yīng)nginx的limit_req,limit_conn和limit_rate三個(gè)模塊,limit_conn和limit_req模塊類似,有許多指令組成一個(gè)大的模塊,兩個(gè)模塊之間很多指令的命名方式和用法大同小異.

ngx_http_limit_conn_module 模塊主要是用于根據(jù)特定的key來(lái)限制連接的數(shù)量,如根據(jù)ip地址來(lái)限制連接數(shù).需注意的是并不是所有的連接都會(huì)被算入其中,只有當(dāng)一個(gè)連接的整個(gè)請(qǐng)求頭被讀取并且已經(jīng)被nginx服務(wù)器處理的時(shí)候才會(huì)被算入限制中.

1. ngx_http_limit_conn_module模塊

1. limit_conn_zone 指令

#語(yǔ)法配置
Syntax: limit_conn_zone key zone=name:size;
Defaule: -
Context: http  #作用域

limit_conn_zone $binary_remote_addr zone=${name}:10m #示例

說(shuō)明:

  •  limit_conn_zone:  只能夠在http塊用使用
  •  key: 可以設(shè)置為$variable使用Nginx內(nèi)置變量作為鍵(一般經(jīng)常使用客戶端ip地址作為鍵:$remote_addr變量的長(zhǎng)度為7字節(jié)到15字節(jié),而存儲(chǔ)狀態(tài)在32位平臺(tái)中占用32字節(jié)或64字節(jié),在64位平臺(tái)中占用64字節(jié)。)$binary_remote_addr變量的長(zhǎng)度是固定的4字節(jié),存儲(chǔ)狀態(tài)在32位平臺(tái)中占用32字節(jié)或64字節(jié),在64位平臺(tái)中占用64字節(jié)。1M共享空間可以保存3.2萬(wàn)個(gè)32位的狀態(tài),1.6萬(wàn)個(gè)64位的狀態(tài))。zone=name定義區(qū)域名稱(名稱隨意起,在limit_conn配置項(xiàng)中調(diào)用時(shí)對(duì)應(yīng)就好),size定義各個(gè)鍵共享內(nèi)存空間大小。如果共享內(nèi)存空間被耗盡,服務(wù)器將會(huì)對(duì)后續(xù)所有的請(qǐng)求返回 503 (Service Temporarily Unavailable) 錯(cuò)誤。
  • name: 就是這個(gè)zone的命名,name需要全局唯一,limit_conn 命令根據(jù)name來(lái)查找對(duì)應(yīng)zone進(jìn)行相應(yīng)限制規(guī)則的匹配.
  • size:  定義這個(gè)zone的大小,也就是nginx會(huì)在內(nèi)存中開辟多大的空間來(lái)存儲(chǔ)這個(gè)zone的相應(yīng)信息,主要和前面定義的key的大小有關(guān)系,需要注意的是當(dāng)內(nèi)存帶下耗盡的時(shí)候,nginx會(huì)直接返回錯(cuò)誤碼limit_conn_status給后續(xù)的請(qǐng)求(If the zone storage is exhausted, the server will return the error to all further requests.)

2. limit_conn指令

Syntax:  limit_conn zone number;  #語(yǔ)法
Default:
Context: http,server,location  #作用域

說(shuō)明:

  • limit_conn: 使用由limit_conn_zone定義的攔截規(guī)則,并設(shè)置具體的限制連接數(shù)量,當(dāng)超過(guò)這個(gè)數(shù)字時(shí)返回503(server)的錯(cuò)誤.定義的存儲(chǔ)區(qū)域key對(duì)應(yīng)的總的網(wǎng)絡(luò)連接數(shù)進(jìn)行限流。可以按照IP來(lái)限制IP維度的總連接數(shù),或者按照服務(wù)域名來(lái)限制某個(gè)域名的總的連接數(shù)(只有那些被nginx處理的且已經(jīng)讀取了整個(gè)請(qǐng)求頭的請(qǐng)求連接才會(huì)被計(jì)數(shù)器統(tǒng)計(jì),在http,server,location三個(gè)塊中使用,但是要搭配limit_conn_zone使用
  • zone: 是在limit_conn_zone中的name變量,對(duì)應(yīng)這全局唯一的zone,負(fù)責(zé)確定限制連接數(shù)的依據(jù)
  • number: 限制的連接數(shù),zone和number組合就可以完成連接數(shù)的限定功能,注意number必須是數(shù)字而不能使用變量.

示例:

 limit_conn_zone $binary_remote_addr zone=addr:10m;
 ?
 server {
     location /download/ {
         limit_conn addr 1;
     }

3. limit_conn_log_level指令

Syntax:	limit_conn_log_level  info|notice|warn|error  #語(yǔ)法
Default:    limit_conn_log_level error;   #默認(rèn)
Context:	http, server, location  #作用域

功能: 當(dāng)達(dá)到最大限制規(guī)則的連接數(shù)后,記錄日志的等級(jí)。會(huì)輸出到error.log中而不是access.log,調(diào)成info的話會(huì)有較多的日志輸出,需要額外注意硬盤容量等相關(guān)問(wèn)題。

4.limit_conn_status指令

Syntax:	limit_conn_status code
Context:	http, server, location
Default:	limit_conn_status 503

功能:當(dāng)超過(guò)限制規(guī)則后,返回的響應(yīng)狀態(tài)碼,默認(rèn)是503,如果是一些有特殊需求的場(chǎng)景,可以手動(dòng)調(diào)整為403之類的狀態(tài)碼,需要注意的是并不是所有的狀態(tài)碼都可以使用,nginx官方限定狀態(tài)碼必須在400到599之間。

5.limit_conn_dry_run指令

 Syntax: limit_conn_dry_run on | off;
 Default:    limit_conn_dry_run off;
 Context:    http, server, location
 This directive appeared in version 1.17.6.

功能: dry_run模式的意義在于試運(yùn)行而不對(duì)線上業(yè)務(wù)造成影響。設(shè)置為on之后,前面的limit_conn指令并不會(huì)真正生效,但是limit_conn_zone指令會(huì)生效,nginx會(huì)在內(nèi)存中存儲(chǔ)計(jì)算相關(guān)的數(shù)據(jù).

到此這篇關(guān)于nginx 限速之limit_conn的使用的文章就介紹到這了,更多相關(guān)nginx limit_conn內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 基于nginx獲取代理服務(wù)ip以及客戶端真實(shí)ip詳解

    基于nginx獲取代理服務(wù)ip以及客戶端真實(shí)ip詳解

    最近在研究nginx中如何獲取真實(shí)客戶端IP的方法,下面這篇文章主要給大家介紹了基于nginx獲取代理服務(wù)ip以及客戶端真實(shí)ip的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • Ubuntu環(huán)境下安裝部署Nginx詳細(xì)步驟(有網(wǎng))

    Ubuntu環(huán)境下安裝部署Nginx詳細(xì)步驟(有網(wǎng))

    Nginx是一個(gè)開源的?HTTP?網(wǎng)絡(luò)服務(wù)器,下面這篇文章主要給大家介紹了關(guān)于Ubuntu環(huán)境下安裝部署Nginx(有網(wǎng))的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2024-01-01
  • nginx http響應(yīng)限速的具體實(shí)現(xiàn)

    nginx http響應(yīng)限速的具體實(shí)現(xiàn)

    本文主要介紹了nginx http響應(yīng)限速的具體實(shí)現(xiàn),可以使用limite_rate和limit_rate_after來(lái)限制HTTP響應(yīng)的速度,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-05-05
  • 前端必備Nginx配置詳解

    前端必備Nginx配置詳解

    這篇文章主要介紹了前端必備Nginx配置詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • nginx+tomcat實(shí)現(xiàn)Windows系統(tǒng)下的負(fù)載均衡搭建教程

    nginx+tomcat實(shí)現(xiàn)Windows系統(tǒng)下的負(fù)載均衡搭建教程

    下面小編就為大家分享一篇nginx+tomcat實(shí)現(xiàn)Windows系統(tǒng)下的負(fù)載均衡搭建教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助
    2017-12-12
  • 為什么 Nginx 比 Apache 更牛

    為什么 Nginx 比 Apache 更牛

    為什么Nginx在處理高并發(fā)方面要優(yōu)于httpd,我們先從兩種web服務(wù)器的工作原理以及工作模式說(shuō)起。對(duì)Nginx對(duì)比 Apache的相關(guān)知識(shí)感興趣的朋友跟隨小編一起看看吧
    2021-02-02
  • 總結(jié)Nginx 的使用過(guò)程中遇到的問(wèn)題及解決方案

    總結(jié)Nginx 的使用過(guò)程中遇到的問(wèn)題及解決方案

    這篇文章主要總結(jié)了Nginx 的使用過(guò)程中遇到的問(wèn)題及解決方案,非常的簡(jiǎn)單實(shí)用,以后遇到相關(guān)問(wèn)題還會(huì)繼續(xù)更新,希望大家收藏關(guān)注
    2014-10-10
  • Nginx 流量鏡像使用的方法示例

    Nginx 流量鏡像使用的方法示例

    Nginx流量鏡像技術(shù)可以在不影響原始請(qǐng)求的情況下復(fù)制請(qǐng)求數(shù)據(jù),用于數(shù)據(jù)分析、安全監(jiān)控等方面,本文就來(lái)介紹一下Nginx 流量鏡像使用的方法示例,感興趣的可以了解一下
    2024-10-10
  • 若依部署Nginx和Tomcat全過(guò)程

    若依部署Nginx和Tomcat全過(guò)程

    文章總結(jié)了兩種部署方法:Nginx部署和Tomcat部署,Nginx部署包括打包、將dist文件拉到指定目錄、配置nginx.conf等步驟,Tomcat部署包括前端打包、將文件拉到webapps目錄、訪問(wèn)測(cè)試等步驟,文章還解決了前后端無(wú)法通信和404問(wèn)題
    2024-12-12
  • Linux中Nginx的防盜鏈和優(yōu)化的實(shí)現(xiàn)代碼

    Linux中Nginx的防盜鏈和優(yōu)化的實(shí)現(xiàn)代碼

    今天是周末小編在值班哈,很開森,工作使我快樂(lè),本文重點(diǎn)給大家介紹Linux中Nginx的防盜鏈和優(yōu)化問(wèn)題及實(shí)現(xiàn)代碼,需要的朋友跟隨小編一起看看吧
    2021-06-06

最新評(píng)論