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

nginx限速配置的三種方法(limit_req、limit_conn、limit_rate)

 更新時(shí)間:2023年08月24日 11:52:02   作者:_Hey_Jude  
本文主要介紹了nginx限速配置的三種方法,主要包括limit_req、limit_conn、limit_rate,本文就詳細(xì)的介紹一下如何使用,感興趣的可以了解一下

目前來說在nginx上面我們常見的三種限速操作分別是

  • 限制請(qǐng)求數(shù)(request) limit_req
  • 限制連接數(shù)(connection)  limit_conn
  • 限制響應(yīng)速度(rate)   limit_rate 

1. limit_req

限制在一段時(shí)間內(nèi)的HTTP請(qǐng)求的數(shù)量,主要算法原理就是基于在計(jì)算機(jī)網(wǎng)絡(luò)中當(dāng)帶寬是有限時(shí)十分常用的漏桶算法。

基本原理就是:以漏桶為例,水從頂部倒入,從底下漏出。這里的幾個(gè)概念分別是:

  • 漏桶對(duì)應(yīng)我們服務(wù)器的帶寬或者是處理請(qǐng)求的能力或者是一個(gè)隊(duì)列
  • 水表示客戶端發(fā)送過來的請(qǐng)求
  • 倒入的水則代表客戶端發(fā)送給服務(wù)器但尚未進(jìn)行處理的請(qǐng)求,此時(shí)請(qǐng)求仍在隊(duì)列(在桶內(nèi))
  • 漏出的水則代表從隊(duì)列中出來即將發(fā)送給服務(wù)器端處理的請(qǐng)求,此時(shí)請(qǐng)求已經(jīng)離開了隊(duì)列(在桶外)

漏桶在一定程度上可以代表服務(wù)器的處理能力,請(qǐng)求根據(jù)先進(jìn)先出(FIFO)調(diào)度算法等待處理。如果倒入水的速度小于漏水的速度,可以理解為服務(wù)器能夠處理完所有的請(qǐng)求,此時(shí)整體服務(wù)表現(xiàn)正常。如果倒入水的速度大于漏水的速度,那么水桶內(nèi)的水會(huì)不斷增加直到最后溢出,這種情況下在水桶中的水可以理解為在隊(duì)列中等待的請(qǐng)求,而溢出的水則表示直接被丟棄不處理的請(qǐng)求。

限速配置:

limit_req_zone $binary_remote_addr zone=mylimit:10m rate=1r/s;
location / {
    limit_req zone=mylimit burst=5 nodelay;
    limit_req _log_level error;
    limit_req_status 503;
    ·······
}

step1 定義請(qǐng)求限制空間 limit_req_zone $binary_remote_addr zone=mylimit:10m rate=1r/s;

1. $binary_remote_addr,表明是以remote_addr為限制目標(biāo),加上binary是為了壓縮內(nèi)存占用空間

2. zone=name:size,分配一個(gè)以name為名的并且大小為size的內(nèi)存空間,用來存儲(chǔ)訪問的頻次信息

3. rate=nr/s, 如rate=1r/s表示同一個(gè)IP每秒只允許一個(gè)請(qǐng)求通過。

step2:定義請(qǐng)求限制 limit_req zone=mylimit burst=5 nodelay;

1.zone=mylimit,使用step1定義的空間

2.brust=x,表示設(shè)置一個(gè)大小為x的緩沖區(qū),超過頻次限制的請(qǐng)求先放入這個(gè)緩沖區(qū)。

3.nodelay,不延遲處理。

        3.1 delay,前delay個(gè)不延遲處理,burst-delay的請(qǐng)求延遲處理,超過burst的503. 

        3.2 nodelay/delay都不填,就按照rate,一個(gè)個(gè)處理,超過brust直接返回503.

2.limit_conn

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

# 注意 應(yīng)該在http里面 server 外面 
# $binanry_remote_addr 和$remote_addr 一樣 但是 減少空間
limit_conn_zone $binanry_remote_addr zone=conn_zone:1m
server{
    ...
    location / {
       # 同一時(shí)段 只有1個(gè)IP能訪問
       limit_conn conn_zone 1;
    }
}

3.limit_rate

限制用戶和服務(wù)器之間傳輸?shù)淖止?jié)數(shù),最常用的場景可能就是下載/上傳限速。

 # 語法配置
 Syntax: limit_rate_after size;
 Default:    limit_rate_after 0;
 Context:    http, server, location, if in location
 This directive appeared in version 0.8.0.
 ?
 # 示例
 location /flv/ {
     flv;
     limit_rate_after 500k;
     limit_rate       50k;
 }

limit_rate的用法非常簡單,后面跟隨的rate就是具體限速的閾值,限速指令的生效范圍是根據(jù)每個(gè)連接確定的,例如上面限定每個(gè)連接的速率為50k,也就是當(dāng)客戶端發(fā)起兩個(gè)連接的時(shí)候,速率就可以變?yōu)?00k

limit_rate_after允許在傳輸了一部分?jǐn)?shù)據(jù)之后再進(jìn)行限速,例如上面的配置中就是傳輸?shù)那?00kbyte數(shù)據(jù)不限速,500k之后再進(jìn)行限速。

limit_rate的一大特點(diǎn)就是能夠使用變量,這就意味著和map指令之類的進(jìn)行組合就可以實(shí)現(xiàn)動(dòng)態(tài)限速功能

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

相關(guān)文章

  • Nginx如何安裝withSSL模塊

    Nginx如何安裝withSSL模塊

    這篇文章主要介紹了Nginx如何安裝withSSL模塊,Nginx 配置文件,開啟ssl訪問時(shí)經(jīng)常報(bào)錯(cuò),原因是由于nginx缺少http_ssl_module模塊,編譯安裝的時(shí)候帶上 --with-http_ssl_module 配置就行了,感興趣的朋友跟隨小編一起看看吧
    2024-04-04
  • windows查看nginx是否啟動(dòng)的四種方法

    windows查看nginx是否啟動(dòng)的四種方法

    本文主要介紹了windows查看nginx是否啟動(dòng)的兩種方法,文中通過圖文代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-07-07
  • nginx提示502 頁面的解決方法

    nginx提示502 頁面的解決方法

    如果部分PHP程序的執(zhí)行時(shí)間超過了Nginx的等待時(shí)間,可以適當(dāng)增加nginx.conf配置文件中FastCGI的timeout時(shí)間
    2013-02-02
  • CentOS環(huán)境下Nginx配置SSL證書實(shí)現(xiàn)https請(qǐng)求詳解

    CentOS環(huán)境下Nginx配置SSL證書實(shí)現(xiàn)https請(qǐng)求詳解

    這篇文章主要為大家介紹了Nginx實(shí)戰(zhàn)-配置SSL證書(CentOS環(huán)境),實(shí)現(xiàn)https請(qǐng)求過程步驟,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • Nginx limit 限制訪問模塊的方法

    Nginx limit 限制訪問模塊的方法

    本篇文章主要介紹了Nginx limit 限制訪問模塊的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-03-03
  • 如何配置Nginx每個(gè)進(jìn)程最多打開的文件數(shù)量

    如何配置Nginx每個(gè)進(jìn)程最多打開的文件數(shù)量

    這篇文章主要介紹了配置Nginx每個(gè)進(jìn)程最多打開的文件數(shù)量,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-06-06
  • 利用nginx實(shí)現(xiàn)動(dòng)靜分離的負(fù)載均衡集群實(shí)戰(zhàn)教程

    利用nginx實(shí)現(xiàn)動(dòng)靜分離的負(fù)載均衡集群實(shí)戰(zhàn)教程

    這篇文章介紹了利用nginx實(shí)現(xiàn)動(dòng)靜分離的負(fù)載均衡集群實(shí)戰(zhàn),本次用到的操作系統(tǒng)及服務(wù),本次實(shí)驗(yàn)一共需要3臺(tái)服務(wù)器,一臺(tái)nginx做為負(fù)載均衡分發(fā)器和動(dòng)靜分離的分發(fā)器,兩臺(tái)apache做為后端服務(wù)器,使用nginx實(shí)現(xiàn)兩臺(tái)apache服務(wù)器的負(fù)載均衡和動(dòng)靜分離,需要的朋友可以參考下
    2023-03-03
  • nginx中的健康檢查方案

    nginx中的健康檢查方案

    這篇文章主要介紹了nginx中的健康檢查方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • Nginx proxy_set_header配置方式

    Nginx proxy_set_header配置方式

    這篇文章主要介紹了Nginx proxy_set_header配置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Nginx根據(jù)不同瀏覽器語言配置頁面跳轉(zhuǎn)的方法

    Nginx根據(jù)不同瀏覽器語言配置頁面跳轉(zhuǎn)的方法

    這篇文章主要介紹了Nginx根據(jù)不同瀏覽器語言配置頁面跳轉(zhuǎn)的方法,包括一個(gè)簡體繁體的基本判斷方法及實(shí)際根據(jù)中英文跳轉(zhuǎn)的例子,需要的朋友可以參考下
    2016-04-04

最新評(píng)論