好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > 詳解Nginx 對訪問量的控制

詳解Nginx 對訪問量的控制

熱門標簽:廈門營銷外呼系統平臺 柳州市機器人外呼系統報價 外呼系統不彈窗 云會外呼系統 申請400電話價格多少 外呼系統的經營范圍 智能電話機器人坐席 安陽ai電銷機器人軟件 涪陵商都400電話開通辦理

目的

了解 Nginx 的 ngx_http_limit_conn_module 和 ngx_http_limit_req_module 模塊,對請求訪問量進行控制。

Nginx 模塊化

nginx 的內部結構是由核心模塊和一系列的功能模塊所組成。模塊化架構使得每個模塊的功能相對簡單,實現高內聚,同時也便于對 Nginx 進行功能擴展。

針對 web 請求,Nginx 所有開啟的模塊會組成一條鏈,類似于闖關游戲中的一道道關卡,每個模塊負責特定的功能,例如實現壓縮的 ngx_http_gzip_module 模塊,實現驗證的 ngx_http_auth_basic_module 模塊和實現代理的 ngx_http_proxy_module 模塊等。連接到服務器的請求,會依次經過Nginx各個模塊的處理,只有通過這些模塊處理之后的請求才會真正的傳遞給后臺程序代碼進行處理。

Nginx 并發訪問控制

對于 web 服務器而言,當遇到網絡爬蟲,或者惡意大流量攻擊訪問時,會造成服務器內存和 CPU 爆滿,帶寬也會跑滿,所以作為成熟的服務器代理軟件,需要可以對這些情況進行控制。

Nginx 控制并發的方法有兩種,一種是通過IP或者其他參數控制其并發量;另外一種是控制單位時間內總的請求處理量。即對并發和并行的控制,這兩個功能分別由 ngx_http_limit_conn_module 和 ngx_http_limit_req_module 模塊負責實現。

ngx_http_limit_conn_module 模塊

說明

該模塊主要用于對請求并發量進行控制。

參數配置

limit_conn_zone

指令配置 limit_conn_zone key zone=name:size
配置的上下文:http
說明:key 是 Nginx 中的變量,通常為 binaryremoteaddr|server_name;name 為共享內存的名稱,size 為該共享內存的大小;此配置會申請一塊共享內存空間 name,并且保存 key 的訪問情況

limit_conn_log_level

語法:limit_conn_log_level info|notice|warn|error
默認值:error
配置上下文:http,server,location
說明:當訪問達到最大限制之后,會將訪問情況記錄在日志中

limit_conn

語法:limit_conn zone_name number
配置上下文:http,server,location
說明:使用 zone_name 進行訪問并發控制,當超過 number 時返回對應的錯誤碼

limit_conn_status

語法:limit_conn_status code
默認值:503
配置上下文:http,server,location
說明:當訪問超過限制 number 時,給客戶端返回的錯誤碼,此錯誤碼可以配合 error_page 等參數,在訪問超量時給客戶返回友好的錯誤頁面

limit_rate

語法:limit_rate rate
默認值:0
配置上下文:http,server,location
說明:對每個鏈接的速率進行限制,rate 表示每秒的下載速度;

limit_rate_after

語法:limit_rate_after size
配置上下文:http,server,location
說明:此命令和 limit_rate 配合,當流量超過 size 之后,limit_rate 才開始生效

簡單配置示例

limit_conn_zone $binary_remote_addr zone=addr:10m;
server {
  listen    80;
  server_name www.domain.com;
  root  /path/;
  index index.html index.htm;
  location /ip {
   limit_conn_status 503; # 超限制后返回的狀態碼;
   limit_conn_log_level warn; # 日志記錄級別
   limit_rate 50; # 帶寬限制
   limit_conn addr 1; # 控制并發訪問
  }
  # 當超過并發訪問限制時,返回503錯誤頁面
  error_page 503 /503.html;
}

ngx_http_limit_req_module 模塊

說明

該模塊主要控制單位時間內的請求數。使用 “leaky bucket” (漏斗)算法進行過濾,在設置好限制 rate 之后,當單位時間內請求數超過 rate 時,模塊會檢測 burst 值,如果值為0,則請求會依據 delay|nodelay 配置返回錯誤或者進行等待;如果 burst 大于0時,當請求數大于 rate 但小于 burst 時,請求進入等待隊列進行處理。

參數配置

limit_req_zone

語法:limit_req_zone key zone=name:size rate=rate
配置上下文:http
說明:key 是 Nginx 中的變量,通常為 binaryremoteaddr|server_name;name 為共享內存的名稱,size 為該共享內存的大小;rate 為訪問頻率,單位為 r/s 、r/m 。此配置會申請一塊共享內存空間 name,并且保存 $key 的訪問情況;

limit_req

語法: limit_rate zone=name [burst=number] [nodelay|delay=number]
配置上下文:http,server,location
說明:開啟限制,burst設置最多容量,nodelay決定當請求超量是,是等待處理還是返回錯誤碼;

limit_req_log_level 和 limit_req_status 配置參數左右與ngx_http_limit_conn_module模塊一致;

簡單配置示例

limit_req_zone $binary_remote_addr zone=req:10m rate=2r/m;
server {
  listen    80;
  server_name www.domain.com;
  root  /path/;
  index index.html index.htm;
  location /limit {
   limit_req zone=req burst=3 nodelay;
  }
  # 當超過并發訪問限制時,返回503錯誤頁面
  error_page 503 /503.html;
}

注意

這兩種訪問控制都需要申請內存空間,既然有內存空間,當然會存在內存耗盡的情況,這時新的請求都會被返回錯誤,所以當開啟訪問量限制時,需要通過監控防止此類情況發生。

小結

通過對 Nginx 模塊化架構的簡單介紹,重點了解 ngx_http_limit_conn_module 和 ngx_http_limit_req_module 模塊的功能和配置參數,實現 Nginx 對請求的并發控制。如有不對,還請指教

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

標簽:南充 蕪湖 孝感 巴中 撫順 晉城 福州 綏化

巨人網絡通訊聲明:本文標題《詳解Nginx 對訪問量的控制》,本文關鍵詞  詳解,Nginx,對,訪問量,的,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《詳解Nginx 對訪問量的控制》相關的同類信息!
  • 本頁收集關于詳解Nginx 對訪問量的控制的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 中文字幕在线永久| 91久久精品国产性色也91久久| mm131极品翘臀尤物美女图集| 三级经典k8播放| 最近手机版免费中文字幕| 男攻受在教室边做边H| 国产美女裸露无遮挡双奶A片视频| 娇妻被奸| **特级毛片免费视频| 蹭蹭好爽?好紧?宝贝书| 亚洲精品秘?一区二区巨| 夜噜噜噜噜噜| 一级毛片丰满**出奶水| 边做边爱免费视频观看| 国精产品一区一区二区三区| 玉势锁链笼子调教受囚禁小说| 日夜不停干劲十足的四字成语| 黄日韩电影在线播放| 一级a免一级a做免费线看内裤英文| 国产精品???精品软件视频| 欲求不满的邻居中文字幕| 日日精品| 二次元美女露着白嫩小奶头图 | 欧美黑人性暴力猛交免费看| 男男羞羞视频网站国产| Japanese边乳喷边做| 国产免费观看一级视频| 久久这里只精品99re免费| chinesespank调教| 情涩影院| 激情五月激情综合色区| 韩国免费一级a一片在线播放| 高清国产精品久久久久| 三亚私人高清影院品牌加盟西瓜| 九色中文| 久久久Av人妻互伦无码菜单| 欧美一级a视频免费放| 韩国精品一区二区三区四区五区| 最刺激的亂倫在线播放| 清冷师尊受露着屁股夹玉势| 牛牛在线精品观看免费正|