最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Nginx 如何限制訪問頻率,下載速率和并發(fā)連接數(shù)的方法

 更新時(shí)間:2019年08月28日 11:55:37   作者:Tom-時(shí)光  
這篇文章主要介紹了Nginx 如何限制訪問頻率,下載速率和并發(fā)連接數(shù)的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

一、 限制訪問頻率、并發(fā)連接、下載速度用到的模塊和指令概述

  • ngx_http_limit_req_module :用來限制單位時(shí)間內(nèi)的請求數(shù),即速率限制,采用的漏桶算法 “l(fā)eaky bucket”
  • ngx_http_limit_conn_module :用來限制同一時(shí)間連接數(shù),即并發(fā)限制
  • limit_rate和limit_rate_after :下載速度設(shè)置

漏桶算法(leaky bucket)

算法思想是:

  • 水(請求)從上方倒入水桶,從水桶下方流出(被處理)
  • 來不及流出的水存在水桶中(緩沖),以固定速率流出;
  • 水桶滿后水溢出(丟棄)。
  • 這個(gè)算法的核心是:緩存請求、勻速處理、多余的請求直接丟棄。
  • Nginx按請求速率限速模塊使用的是漏桶算法,即能夠強(qiáng)行保證請求的實(shí)時(shí)處理速度不會超過設(shè)置的閾值

二、限制URL訪問請求頻率

http{ 
    ... 
 
  limit_req_zone $binary_remote_addr zone=one:30m rate=20r/s; 
  limit_req_zone $binary_remote_addr $uri zone=two:30m rate=20r/s; 
  limit_req_zone $binary_remote_addr $request_uri zone=three:30m rate=20r/s; 
  limit_req_status 444; 
    ... 
 
  server{ 
      ... 
 
    limit_req zone=two burst=15 nodelay; 
    ... 
 
  } 
} 

解釋:

limit_req_zone $binary_remote_addr zone=one:30m rate=20r/s;

  • $binary_remote_addr 是限制同一客戶端ip地址不同URL
  • zone:區(qū)域名one 存放session30M
  • rate: 每秒鐘請求數(shù)

limit_req_zone $binary_remote_addr $uri zone=two:30m rate=20r/s;

  • $binary_remote_addr $uri 是限制同一客戶端ip地址 相同URL
  • zone:區(qū)域名two 存放session30M
  • rate: 每秒鐘請求數(shù)

limit_req_zone $binary_remote_addr $request_uri zone=three:30m rate=20r/s;

  • $binary_remote_addr $request_uri 是限制同一客戶端ip地址 相同URL
  • zone:區(qū)域名two 存放session30M
  • rate: 每秒鐘請求數(shù)

limit_req zone=two burst=15 nodelay;

  • zone引用 區(qū)域?yàn)閠wo,
  • burst 設(shè)置一個(gè)大小為15的緩沖區(qū),當(dāng)有大量請求(爆發(fā))過來時(shí),訪問超過了上面的限制可以先放到緩沖區(qū)內(nèi)。
  • nodelay 一般是和burst一起使用的,如果設(shè)置了nodelay,當(dāng)訪問超過了頻次而且緩沖區(qū)也滿的情況下會直接返回503,如果設(shè)置了,則所有大的請求會等待排隊(duì)

三、并發(fā)連接數(shù)限制

案例一:

http { 
  ... 
 
  limit_conn_log_level error; 
  limit_conn_zone $binary_remote_addr zone=addr:10m; 
  limit_conn_status 503; 
 
  ... 
 
  server { 
 
    ... 
 
    location /download/ { 
      limit_conn addr 1; 單個(gè)客戶端IP限制為1 
    } 
    ... 
 
} 

案例二:

http{ 
limit_conn_zone $binary_remote_addr zone=perip:10m; 
limit_conn_zone $server_name zone=perserver:10m; 
 
  server { 
    ... 
    limit_conn perip 10;  #單個(gè)客戶端ip與服務(wù)器的連接數(shù) 
    limit_conn perserver 100; #限制與服務(wù)器的總連接數(shù) 
  } 
} 

四、限制下載速度

location /download { 
  limit_rate 128k; 
 } 
 
#如果想設(shè)置用戶下載文件的前10m大小時(shí)不限速,大于10m后再以128kb/s限速可以增加以下配內(nèi)容 
 
location /download { 
    limit_rate_after 10m; 
    limit_rate 128k; 
 } 

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 很詳細(xì)的Nginx配置說明

    很詳細(xì)的Nginx配置說明

    這篇文章主要為大家分享了一篇很詳細(xì)的Nginx配置說明,主要內(nèi)容包括Nginx常用功能、Nginx配置文件結(jié)構(gòu),想要了解Nginx配置的朋友不要錯(cuò)過,參考一下
    2016-02-02
  • nginx使用nginx-rtmp-module模塊實(shí)現(xiàn)直播間功能

    nginx使用nginx-rtmp-module模塊實(shí)現(xiàn)直播間功能

    做的過程出現(xiàn)很多問題,環(huán)境其實(shí)就需要nginx就可以,然后就是在播放的問題,m3u8的格式,mac直接訪問就支持,蘋果系統(tǒng)原生H5支持m3u8,還有就是手機(jī)直接訪問也支持!但是其他其他系統(tǒng)PC端不支持,嘗試了好多都不行,最后終于找到了一個(gè)支持m3u8格式H5播放
    2017-10-10
  • Nginx+keepalived雙機(jī)熱備技術(shù)實(shí)踐

    Nginx+keepalived雙機(jī)熱備技術(shù)實(shí)踐

    在互聯(lián)網(wǎng)的高可用性 服務(wù)中,單一的服務(wù)節(jié)點(diǎn)往往無法滿足業(yè)務(wù)對穩(wěn)定性和可用性的要求,雙機(jī)熱備是一種常見的高可用性解決方案,它通過兩臺服務(wù)器同時(shí)運(yùn)行相同的服務(wù),本文將詳細(xì)介紹如何在 Nginx 環(huán)境中部署雙機(jī)熱備方案,需要的朋友可以參考下
    2025-01-01
  • Ubuntu系統(tǒng)下的Nginx服務(wù)器軟件安裝時(shí)的常見錯(cuò)誤解決

    Ubuntu系統(tǒng)下的Nginx服務(wù)器軟件安裝時(shí)的常見錯(cuò)誤解決

    這篇文章主要介紹了Ubuntu系統(tǒng)下的Nginx服務(wù)器軟件安裝時(shí)的常見問題解決,包括徹底卸載Nginx的方法介紹,需要的朋友可以參考下
    2016-03-03
  • Windows系統(tǒng)下安裝及部署Nginx詳細(xì)教程(含多個(gè)站點(diǎn)部署)

    Windows系統(tǒng)下安裝及部署Nginx詳細(xì)教程(含多個(gè)站點(diǎn)部署)

    Nginx是一個(gè)很強(qiáng)大的高性能Web和反向代理服務(wù),也是一種輕量級的Web服務(wù)器,可以作為獨(dú)立的服務(wù)器部署網(wǎng)站,應(yīng)用非常廣泛,這篇文章主要給大家介紹了關(guān)于Windows系統(tǒng)下安裝及部署Nginx(含多個(gè)站點(diǎn)部署)的相關(guān)資料,需要的朋友可以參考下
    2024-01-01
  • Nginx中if語句的判斷條件與多條件判斷詳解

    Nginx中if語句的判斷條件與多條件判斷詳解

    這篇文章主要介紹了關(guān)于Nginx中if語句的判斷條件與多條件判斷的相關(guān)資料,文中給出了詳細(xì)的示例代碼,對大家具有一定的參考價(jià)值,需要的朋友們下面來一起看看吧。
    2017-03-03
  • Nginx?map?實(shí)現(xiàn)時(shí)間格式轉(zhuǎn)換的方法

    Nginx?map?實(shí)現(xiàn)時(shí)間格式轉(zhuǎn)換的方法

    最近我們需要把?Nginx?的日志接入到自研的日志采集平臺上,但是這個(gè)平臺只支持?JSON?格式,所以需要把?Nginx?日志格式改成?JSON?格式,這篇文章主要介紹了Nginx?map?實(shí)現(xiàn)時(shí)間格式轉(zhuǎn)換,需要的朋友可以參考下
    2023-09-09
  • 修改配置解決Nginx服務(wù)器中常見的上傳與連接錯(cuò)誤

    修改配置解決Nginx服務(wù)器中常見的上傳與連接錯(cuò)誤

    這篇文章主要介紹了修改配置解決Nginx服務(wù)器中常見的上傳與連接錯(cuò)誤的方法,分別針對Nginx的413錯(cuò)誤與111錯(cuò)誤,需要的朋友可以參考下
    2016-01-01
  • 基于nginx的靜態(tài)網(wǎng)頁部署的實(shí)現(xiàn)

    基于nginx的靜態(tài)網(wǎng)頁部署的實(shí)現(xiàn)

    這篇文章主要介紹了基于nginx的靜態(tài)網(wǎng)頁部署的實(shí)現(xiàn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-06-06
  • Nginx rewrite正則匹配重寫的方法示例

    Nginx rewrite正則匹配重寫的方法示例

    這篇文章主要介紹了Nginx rewrite正則匹配重寫的方法示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10

最新評論

泌阳县| 山东省| 贵德县| 开鲁县| 宜兴市| 革吉县| 通化市| 鸡泽县| 石嘴山市| 噶尔县| 赤城县| 宁都县| 南充市| 舞阳县| 兴义市| 锡林郭勒盟| 扶绥县| 甘谷县| 镇江市| 凌源市| 青冈县| 墨竹工卡县| 陆丰市| 金门县| 苏尼特右旗| 普兰县| 安顺市| 海门市| 雷州市| 博客| 青川县| 汾阳市| 普洱| 绍兴市| 抚宁县| 大城县| 都昌县| 石家庄市| 酉阳| 筠连县| 象山县|