婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 淺談Nginx 中的兩種限流方式

淺談Nginx 中的兩種限流方式

熱門標簽:中國地圖標注上各個省 電銷智能機器人試用 撫州市城區地圖標注 百度地圖底圖標注 智能電銷機器人真的有用么 企業辦理400電話收費標準 新鄉牧野400電話申請 高德地圖標注足跡怎么打標 激光標記地圖標注

系統設計時一般會預估負載,當系統暴露在公網中時,惡意攻擊或正常突發流量等都可能導致系統被壓垮,而限流就是保護措施之一。限流即控制流量,本文將記錄 Nginx 的二種限流設置。

生活中的 “限流”?

限流并非新鮮事,在生活中亦無處不在,下面例舉一二:

博物館:限制每天參觀總人數以保護文物

高鐵安檢:有若干安檢口,旅客依次排隊,工作人員根據安檢快慢決定是否放人進去。遇到節假日,可以增加安檢口來提高處理能力(橫向拓展),同時增加排隊等待區長度(緩存待處理任務)。

辦理銀行業務:所有人先領號,各窗口叫號處理。每個窗口處理速度根據客戶具體業務而定,所有人排隊等待叫號即可。若快下班時,告知客戶明日再來(拒絕流量)。

水壩泄洪:水壩可以通過閘門控制泄洪速度(控制處理速度)。

以上"限流"例子,可以讓服務提供者穩定的服務客戶。

Nginx 限流

Nginx 提供兩種限流方式,一是控制速率,二是控制并發連接數。

控制速率

正常限流

ngx_http_limit_req_module 模塊提供限制請求處理速率能力,使用了漏桶算法(leaky bucket)。下面例子使用 nginx limit_req_zone 和 limit_req 兩個指令,限制單個IP的請求處理速率。

在 nginx.conf http 中添加限流配置:

格式:limit_req_zone key zone rate

http {
 limit_req_zone $binary_remote_addr zone=myRateLimit:10m rate=10r/s;
}

配置 server,使用 limit_req 指令應用限流。

server {
 location / {
 limit_req zone=myRateLimit;
 proxy_pass http://my_upstream;
 }
}

key :定義限流對象,binary_remote_addr 是一種key,表示基于 remote_addr(客戶端IP) 來做限流,binary_ 的目的是壓縮內存占用量。

zone:定義共享內存區來存儲訪問信息, myRateLimit:10m 表示一個大小為10M,名字為myRateLimit的內存區域。1M能存儲16000 IP地址的訪問信息,10M可以存儲16W IP地址訪問信息。

rate 用于設置最大訪問速率,rate=10r/s 表示每秒最多處理10個請求。Nginx 實際上以毫秒為粒度來跟蹤請求信息,因此 10r/s 實際上是限制:每100毫秒處理一個請求。這意味著,自上一個請求處理完后,若后續100毫秒內又有請求到達,將拒絕處理該請求。

處理突發流量

上面例子限制 10r/s,如果有時正常流量突然增大,超出的請求將被拒絕,無法處理突發流量,可以結合 burst 參數使用來解決該問題。

server {
 location / {
 limit_req zone=myRateLimit burst=20;
 proxy_pass http://my_upstream;
 }
}

burst 譯為突發、爆發,表示在超過設定的處理速率后能額外處理的請求數。當 rate=10r/s 時,將1s拆成10份,即每100ms可處理1個請求。

此處,**burst=20 **,若同時有21個請求到達,Nginx 會處理第一個請求,剩余20個請求將放入隊列,然后每隔100ms從隊列中獲取一個請求進行處理。若請求數大于21,將拒絕處理多余的請求,直接返回503.

不過,單獨使用 burst 參數并不實用。假設 burst=50 ,rate依然為10r/s,排隊中的50個請求雖然每100ms會處理一個,但第50個請求卻需要等待 50 * 100ms即 5s,這么長的處理時間自然難以接受。

因此,burst 往往結合 nodelay 一起使用。

server {
 location / {
 limit_req zone=myRateLimit burst=20 nodelay;
 proxy_pass http://my_upstream;
 }
}

nodelay 針對的是 burst 參數,burst=20 nodelay 表示這20個請求立馬處理,不能延遲,相當于特事特辦。不過,即使這20個突發請求立馬處理結束,后續來了請求也不會立馬處理。burst=20 相當于緩存隊列中占了20個坑,即使請求被處理了,這20個位置這只能按 100ms一個來釋放。

這就達到了速率穩定,但突然流量也能正常處理的效果。

限制連接數

ngx_http_limit_conn_module 提供了限制連接數的能力,利用 limit_conn_zone 和 limit_conn 兩個指令即可。下面是 Nginx 官方例子:

limit_conn_zone $binary_remote_addr zone=perip:10m;
limit_conn_zone $server_name zone=perserver:10m;

server {
 ...
 limit_conn perip 10;
 limit_conn perserver 100;
}

limit_conn perip 10 作用的key 是 $binary_remote_addr,表示限制單個IP同時最多能持有10個連接。

limit_conn perserver 100 作用的key是 $server_name,表示虛擬主機(server) 同時能處理并發連接的總數。

需要注意的是:只有當 request header 被后端server處理后,這個連接才進行計數。

設置白名單

限流主要針對外部訪問,內網訪問相對安全,可以不做限流,通過設置白名單即可。利用 Nginx ngx_http_geo_module 和 ngx_http_map_module 兩個工具模塊即可搞定。

在 nginx.conf 的 http 部分中配置白名單:

geo $limit {
 default 1;
 10.0.0.0/8 0;
 192.168.0.0/24 0;
 172.20.0.35 0;
}

map $limit $limit_key {
 0 "";
 1 $binary_remote_addr;
}

limit_req_zone $limit_key zone=myRateLimit:10m rate=10r/s;

geo 對于白名單(子網或IP都可以) 將返回0,其他IP將返回1。

map 將 limit **轉換為** limit_key,如果是 $limit 是0(白名單),則返回空字符串;如果是1,則返回客戶端實際IP。

limit_req_zone 限流的key不再使用 而是 **limit_key 來動態獲取值。如果是白名單,limit_req_zone 的限流key則為空字符串,將不會限流;若不是白名單,將會對客戶端真實IP進行限流。

拓展閱讀

除限流外,ngx_http_core_module 還提供了限制數據傳輸速度的能力(即常說的下載速度)。

例如:

location /flv/ {
 flv;
 limit_rate_after 20m;
 limit_rate 100k;
}

這個限制是針對每個請求的,表示客戶端下載前20M時不限速,后續限制100kb/s。

以上這篇淺談Nginx 中的兩種限流方式就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

標簽:南通 忻州 海西 西安 辛集 延安 邯鄲 臨汾

巨人網絡通訊聲明:本文標題《淺談Nginx 中的兩種限流方式》,本文關鍵詞  淺談,Nginx,中的,兩種,限流,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《淺談Nginx 中的兩種限流方式》相關的同類信息!
  • 本頁收集關于淺談Nginx 中的兩種限流方式的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    全部av―极品视觉盛宴亚洲| 欧美xxxx在线观看| 国产成人av电影免费在线观看| 亚洲成人第一页| 亚洲最色的网站| 久久精品欧美日韩| 久久精品欧美日韩| 精品剧情在线观看| 欧美一级欧美三级在线观看| 欧美色窝79yyyycom| 9i看片成人免费高清| 国产91露脸合集magnet | 日本韩国欧美一区二区三区| 日本aⅴ免费视频一区二区三区| 亚洲欧美国产三级| 国产精品久久久久影院老司| 欧洲av一区二区嗯嗯嗯啊| 福利视频网站一区二区三区| 午夜视黄欧洲亚洲| 樱花草国产18久久久久| 亚洲日本在线视频观看| 国产欧美日韩不卡| 国产午夜精品理论片a级大结局| 欧美日韩一区不卡| 欧美日韩精品专区| 欧美一区二区在线视频| 欧美日韩国产一区二区三区地区| 日韩欧美在线网站| 国产亚洲一区字幕| 日韩毛片在线免费观看| 亚洲高清免费在线| 青青草伊人久久| 国产精品一区在线观看你懂的| 国产精品18久久久久久久久 | 精品欧美黑人一区二区三区| 日本大香伊一区二区三区| 精品影院一区二区久久久| 亚洲一区二区三区精品在线| 亚洲成国产人片在线观看| 奇米一区二区三区av| 国产在线一区二区| 成人激情av网| 欧美三级午夜理伦三级中视频| 日韩一区二区中文字幕| 国产清纯白嫩初高生在线观看91| 亚洲欧洲国产日本综合| 日日夜夜精品视频免费| 极品尤物av久久免费看| 91片黄在线观看| 色悠悠久久综合| 欧美男女性生活在线直播观看| 欧美mv日韩mv国产网站| 亚洲精品水蜜桃| 天涯成人国产亚洲精品一区av| 五月天婷婷综合| 国产精品白丝jk白祙喷水网站 | 亚洲精品国产无天堂网2021| 中文字幕不卡的av| 婷婷六月综合亚洲| 成人性视频免费网站| 555夜色666亚洲国产免| 国产精品美女久久久久久2018| 亚洲一区二区偷拍精品| 白白色 亚洲乱淫| 精品伦理精品一区| 中文字幕在线观看一区| 综合分类小说区另类春色亚洲小说欧美 | 一区二区三区中文字幕| 午夜电影网亚洲视频| 91老司机福利 在线| 色综合一个色综合| 制服丝袜中文字幕一区| 久久久久9999亚洲精品| 国产精品色婷婷久久58| 亚洲电影一区二区三区| 精品一区精品二区高清| 欧美四级电影网| 亚洲精品中文字幕在线观看| 成人av网在线| 欧美国产精品v| 国产精品中文有码| 精品美女一区二区| 美女www一区二区| 不卡电影免费在线播放一区| 欧美日韩精品三区| 日本一区二区三区久久久久久久久不| 日本不卡123| 欧美日韩久久一区| 日韩精品亚洲专区| 91精品国产美女浴室洗澡无遮挡| 国产精品白丝在线| 91丨porny丨蝌蚪视频| 中文字幕av一区二区三区| 激情六月婷婷综合| 日韩欧美一区二区久久婷婷| 一色桃子久久精品亚洲| 久久精品72免费观看| 日韩欧美精品三级| 国产精品白丝jk黑袜喷水| 日本一区二区成人| 97国产一区二区| 亚洲黄色片在线观看| 欧美色综合网站| 人妖欧美一区二区| 欧美一级欧美一级在线播放| 精品制服美女丁香| 久久嫩草精品久久久久| 奇米精品一区二区三区四区| 91麻豆精品国产91久久久使用方法 | 亚洲精品中文在线| av色综合久久天堂av综合| 最新日韩在线视频| 另类小说图片综合网| 91精品国产一区二区三区香蕉| 日本vs亚洲vs韩国一区三区二区 | 91浏览器在线视频| 亚洲一区二区三区四区五区黄| 精品视频在线免费观看| 蜜桃视频在线一区| 欧美激情一区二区三区| 91久久精品国产91性色tv| 蜜臀av性久久久久蜜臀aⅴ四虎| 久久女同精品一区二区| 91浏览器在线视频| 精品亚洲免费视频| 亚洲人精品午夜| 在线观看www91| 国产大陆亚洲精品国产| 亚洲成a人片在线不卡一二三区| 久久先锋资源网| 欧美性一二三区| 琪琪一区二区三区| 亚洲乱码国产乱码精品精的特点 | 欧美草草影院在线视频| 91丝袜高跟美女视频| 狠狠狠色丁香婷婷综合激情| 一区二区三区免费观看| 久久色在线观看| 欧美日韩一级片在线观看| 蜜臀av在线播放一区二区三区| 国产人久久人人人人爽| 欧美在线免费播放| 成人午夜视频网站| 激情综合色综合久久| 亚洲国产精品精华液网站| 久久久精品黄色| 欧美日韩国产天堂| 成人av免费在线| 国产美女在线精品| 日本特黄久久久高潮| 中文字幕精品综合| 精品国产髙清在线看国产毛片| 欧美色综合网站| 91福利国产成人精品照片| 韩国女主播一区| 男女视频一区二区| 青青草国产精品97视觉盛宴| 亚洲精品综合在线| 亚洲欧洲av在线| 亚洲桃色在线一区| 中文字幕五月欧美| 欧美极品美女视频| 久久亚洲综合av| 精品国产一区二区三区av性色| 日韩欧美一卡二卡| 欧美巨大另类极品videosbest| 色哟哟一区二区在线观看 | 91免费看`日韩一区二区| 成人性视频网站| 精彩视频一区二区三区| 久久成人免费电影| 麻豆精品精品国产自在97香蕉| 日本免费在线视频不卡一不卡二| 一区二区三区四区中文字幕| 亚洲自拍偷拍九九九| 亚洲一区中文在线| 日韩精品电影在线观看| 久国产精品韩国三级视频| 国产永久精品大片wwwapp| 午夜欧美大尺度福利影院在线看| 国产三级精品三级在线专区| 久久亚洲捆绑美女| 国产亚洲精品7777| 亚洲精品v日韩精品| 欧美激情在线一区二区| 亚洲色欲色欲www| 亚洲高清在线精品| 激情另类小说区图片区视频区| 国产成人自拍网| 国产精一品亚洲二区在线视频| 亚洲国产aⅴ成人精品无吗| 亚洲天堂久久久久久久| 亚洲成av人片一区二区梦乃| 日本一道高清亚洲日美韩| 丝袜美腿亚洲一区| 国产综合一区二区| 成人av手机在线观看| 成人免费看片app下载| 91麻豆精品视频| av午夜精品一区二区三区|