亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

詳解Nginx 對(duì)訪(fǎng)問(wèn)量的控制

 更新時(shí)間:2018年12月28日 10:35:24   作者:路飛君1234  
本文詳解的介紹了 Nginx 的 ngx_http_limit_conn_module 和 ngx_http_limit_req_module 模塊,對(duì)請(qǐng)求訪(fǎng)問(wèn)量進(jìn)行控制。非常具有實(shí)用價(jià)值,需要的朋友可以參考下

目的

了解 Nginx 的 ngx_http_limit_conn_module 和 ngx_http_limit_req_module 模塊,對(duì)請(qǐng)求訪(fǎng)問(wèn)量進(jìn)行控制。

Nginx 模塊化

nginx 的內(nèi)部結(jié)構(gòu)是由核心模塊和一系列的功能模塊所組成。模塊化架構(gòu)使得每個(gè)模塊的功能相對(duì)簡(jiǎn)單,實(shí)現(xiàn)高內(nèi)聚,同時(shí)也便于對(duì) Nginx 進(jìn)行功能擴(kuò)展。

針對(duì) web 請(qǐng)求,Nginx 所有開(kāi)啟的模塊會(huì)組成一條鏈,類(lèi)似于闖關(guān)游戲中的一道道關(guān)卡,每個(gè)模塊負(fù)責(zé)特定的功能,例如實(shí)現(xiàn)壓縮的 ngx_http_gzip_module 模塊,實(shí)現(xiàn)驗(yàn)證的 ngx_http_auth_basic_module 模塊和實(shí)現(xiàn)代理的 ngx_http_proxy_module 模塊等。連接到服務(wù)器的請(qǐng)求,會(huì)依次經(jīng)過(guò)Nginx各個(gè)模塊的處理,只有通過(guò)這些模塊處理之后的請(qǐng)求才會(huì)真正的傳遞給后臺(tái)程序代碼進(jìn)行處理。

Nginx 并發(fā)訪(fǎng)問(wèn)控制

對(duì)于 web 服務(wù)器而言,當(dāng)遇到網(wǎng)絡(luò)爬蟲(chóng),或者惡意大流量攻擊訪(fǎng)問(wèn)時(shí),會(huì)造成服務(wù)器內(nèi)存和 CPU 爆滿(mǎn),帶寬也會(huì)跑滿(mǎn),所以作為成熟的服務(wù)器代理軟件,需要可以對(duì)這些情況進(jìn)行控制。

Nginx 控制并發(fā)的方法有兩種,一種是通過(guò)IP或者其他參數(shù)控制其并發(fā)量;另外一種是控制單位時(shí)間內(nèi)總的請(qǐng)求處理量。即對(duì)并發(fā)和并行的控制,這兩個(gè)功能分別由 ngx_http_limit_conn_module 和 ngx_http_limit_req_module 模塊負(fù)責(zé)實(shí)現(xiàn)。

ngx_http_limit_conn_module 模塊

說(shuō)明

該模塊主要用于對(duì)請(qǐng)求并發(fā)量進(jìn)行控制。

參數(shù)配置

limit_conn_zone

指令配置 limit_conn_zone key zone=name:size
配置的上下文:http
說(shuō)明:key 是 Nginx 中的變量,通常為 binaryremoteaddr|server_name;name 為共享內(nèi)存的名稱(chēng),size 為該共享內(nèi)存的大?。淮伺渲脮?huì)申請(qǐng)一塊共享內(nèi)存空間 name,并且保存 key 的訪(fǎng)問(wèn)情況

limit_conn_log_level

語(yǔ)法:limit_conn_log_level info|notice|warn|error
默認(rèn)值:error
配置上下文:http,server,location
說(shuō)明:當(dāng)訪(fǎng)問(wèn)達(dá)到最大限制之后,會(huì)將訪(fǎng)問(wèn)情況記錄在日志中

limit_conn

語(yǔ)法:limit_conn zone_name number
配置上下文:http,server,location
說(shuō)明:使用 zone_name 進(jìn)行訪(fǎng)問(wèn)并發(fā)控制,當(dāng)超過(guò) number 時(shí)返回對(duì)應(yīng)的錯(cuò)誤碼

limit_conn_status

語(yǔ)法:limit_conn_status code
默認(rèn)值:503
配置上下文:http,server,location
說(shuō)明:當(dāng)訪(fǎng)問(wèn)超過(guò)限制 number 時(shí),給客戶(hù)端返回的錯(cuò)誤碼,此錯(cuò)誤碼可以配合 error_page 等參數(shù),在訪(fǎng)問(wèn)超量時(shí)給客戶(hù)返回友好的錯(cuò)誤頁(yè)面

limit_rate

語(yǔ)法:limit_rate rate
默認(rèn)值:0
配置上下文:http,server,location
說(shuō)明:對(duì)每個(gè)鏈接的速率進(jìn)行限制,rate 表示每秒的下載速度;

limit_rate_after

語(yǔ)法:limit_rate_after size
配置上下文:http,server,location
說(shuō)明:此命令和 limit_rate 配合,當(dāng)流量超過(guò) size 之后,limit_rate 才開(kāi)始生效

簡(jiǎn)單配置示例

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; # 超限制后返回的狀態(tài)碼;
   limit_conn_log_level warn; # 日志記錄級(jí)別
   limit_rate 50; # 帶寬限制
   limit_conn addr 1; # 控制并發(fā)訪(fǎng)問(wèn)
  }
  # 當(dāng)超過(guò)并發(fā)訪(fǎng)問(wèn)限制時(shí),返回503錯(cuò)誤頁(yè)面
  error_page 503 /503.html;
}

ngx_http_limit_req_module 模塊

說(shuō)明

該模塊主要控制單位時(shí)間內(nèi)的請(qǐng)求數(shù)。使用 “l(fā)eaky bucket” (漏斗)算法進(jìn)行過(guò)濾,在設(shè)置好限制 rate 之后,當(dāng)單位時(shí)間內(nèi)請(qǐng)求數(shù)超過(guò) rate 時(shí),模塊會(huì)檢測(cè) burst 值,如果值為0,則請(qǐng)求會(huì)依據(jù) delay|nodelay 配置返回錯(cuò)誤或者進(jìn)行等待;如果 burst 大于0時(shí),當(dāng)請(qǐng)求數(shù)大于 rate 但小于 burst 時(shí),請(qǐng)求進(jìn)入等待隊(duì)列進(jìn)行處理。

參數(shù)配置

limit_req_zone

語(yǔ)法:limit_req_zone key zone=name:size rate=rate
配置上下文:http
說(shuō)明:key 是 Nginx 中的變量,通常為 binaryremoteaddr|server_name;name 為共享內(nèi)存的名稱(chēng),size 為該共享內(nèi)存的大小;rate 為訪(fǎng)問(wèn)頻率,單位為 r/s 、r/m 。此配置會(huì)申請(qǐng)一塊共享內(nèi)存空間 name,并且保存 $key 的訪(fǎng)問(wèn)情況;

limit_req

語(yǔ)法: limit_rate zone=name [burst=number] [nodelay|delay=number]
配置上下文:http,server,location
說(shuō)明:開(kāi)啟限制,burst設(shè)置最多容量,nodelay決定當(dāng)請(qǐng)求超量是,是等待處理還是返回錯(cuò)誤碼;

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

簡(jiǎn)單配置示例

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;
  }
  # 當(dāng)超過(guò)并發(fā)訪(fǎng)問(wèn)限制時(shí),返回503錯(cuò)誤頁(yè)面
  error_page 503 /503.html;
}

注意

這兩種訪(fǎng)問(wèn)控制都需要申請(qǐng)內(nèi)存空間,既然有內(nèi)存空間,當(dāng)然會(huì)存在內(nèi)存耗盡的情況,這時(shí)新的請(qǐng)求都會(huì)被返回錯(cuò)誤,所以當(dāng)開(kāi)啟訪(fǎng)問(wèn)量限制時(shí),需要通過(guò)監(jiān)控防止此類(lèi)情況發(fā)生。

小結(jié)

通過(guò)對(duì) Nginx 模塊化架構(gòu)的簡(jiǎn)單介紹,重點(diǎn)了解 ngx_http_limit_conn_module 和 ngx_http_limit_req_module 模塊的功能和配置參數(shù),實(shí)現(xiàn) Nginx 對(duì)請(qǐng)求的并發(fā)控制。如有不對(duì),還請(qǐng)指教

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

相關(guān)文章

  • Nginx Gzip模塊啟用和配置指令詳解

    Nginx Gzip模塊啟用和配置指令詳解

    這篇文章主要介紹了Nginx Gzip模塊啟用和配置指令詳解的,需要的朋友可以參考下
    2014-04-04
  • Nginx的優(yōu)化、安全與防盜鏈實(shí)例詳解

    Nginx的優(yōu)化、安全與防盜鏈實(shí)例詳解

    防止盜鏈不僅能保護(hù)版權(quán),又節(jié)約了不少流量,下面這篇文章主要給大家介紹了關(guān)于Nginx優(yōu)化、安全與防盜鏈的相關(guān)資料,文中通過(guò)圖文以及實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-10-10
  • Nginx?403?forbidden錯(cuò)誤的原因以及解決方法

    Nginx?403?forbidden錯(cuò)誤的原因以及解決方法

    yum安裝nginx,安裝一切正常,但是訪(fǎng)問(wèn)時(shí)報(bào)403 forbidden,下面這篇文章主要給大家介紹了關(guān)于Nginx?403?forbidden錯(cuò)誤的原因以及解決方法,需要的朋友可以參考下
    2022-08-08
  • nginx快速部署一個(gè)網(wǎng)站服務(wù)(多域名+多端口)

    nginx快速部署一個(gè)網(wǎng)站服務(wù)(多域名+多端口)

    本文主要介紹了nginx快速部署一個(gè)網(wǎng)站服務(wù),并實(shí)現(xiàn)多域名和多端口,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-10-10
  • 使用referer指令配置Nginx服務(wù)器來(lái)防止圖片盜鏈

    使用referer指令配置Nginx服務(wù)器來(lái)防止圖片盜鏈

    這篇文章主要介紹了使用referer指令配置Nginx服務(wù)器來(lái)防止圖片盜鏈的方法,文中也簡(jiǎn)單介紹了referer指令的一些語(yǔ)法和常用參數(shù),需要的朋友可以參考下
    2015-12-12
  • nginx通過(guò)https部署vue項(xiàng)目的完整步驟

    nginx通過(guò)https部署vue項(xiàng)目的完整步驟

    在實(shí)際開(kāi)發(fā)中,我們會(huì)以https形式進(jìn)行頁(yè)面訪(fǎng)問(wèn),下面這篇文章主要給大家介紹了關(guān)于nginx通過(guò)https部署vue項(xiàng)目的完整步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-05-05
  • 詳解nginx使用ssl模塊配置HTTPS支持

    詳解nginx使用ssl模塊配置HTTPS支持

    本篇文章主要介紹了詳解nginx使用ssl模塊配置HTTPS支持 ,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-12-12
  • nginx rewrite 偽靜態(tài)配置參數(shù)詳細(xì)說(shuō)明

    nginx rewrite 偽靜態(tài)配置參數(shù)詳細(xì)說(shuō)明

    nginx rewrite 偽靜態(tài)配置參數(shù)和使用例子 附正則使用說(shuō)明
    2010-05-05
  • nginx?添加http_stub_status_module模塊

    nginx?添加http_stub_status_module模塊

    本文主要介紹了nginx?添加http_stub_status_module模塊,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • nginx關(guān)于add_header的坑及解決

    nginx關(guān)于add_header的坑及解決

    這篇文章主要介紹了nginx關(guān)于add_header的坑及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12

最新評(píng)論