日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

nginx请求频率限制模块ngx_http_limit_req_module

發(fā)布時(shí)間:2024/9/21 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 nginx请求频率限制模块ngx_http_limit_req_module 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

模塊:?ngx_http_limit_req_module

作用: 限制客戶端請(qǐng)求頻率,防止惡意攻擊

配置示例:

http {limit_req_zone $binary_remote_addr zone=req_perip:50m rate=10r/s;...server {...location /api/ {limit_req zone=req_perip burst=50 nodelay;limit_req_status 503;}} }

說(shuō)明: 示例中定義的區(qū)域名稱為req_peripzone=req_perip,分配內(nèi)存大小為50m(如果限制域的存儲(chǔ)空間耗盡了,對(duì)于后續(xù)所有請(qǐng)求,服務(wù)器都會(huì)返回 503同一個(gè)ip$binary_remote_addr平均處理的請(qǐng)求頻率不能超過(guò)每秒10次rate=10r/s 如果超過(guò)每秒10次但超過(guò)的請(qǐng)求數(shù)量小于等于50burst=50時(shí),會(huì)延遲請(qǐng)求。如果超過(guò)每秒10次的請(qǐng)求數(shù)超過(guò)50,則立即返回503limit_req_status 503給客戶端

?

涉及指令:

  limit_req_zone

  limit_req

  limit_req_status?

  limit_req_log_level?

?

指令詳解:

limit_req_zone語(yǔ)法: limit_req_zone key zone=name:size rate=rate; (可理解為該指令用來(lái)定義限制請(qǐng)求頻率) 可配置區(qū)域: http

key: 必選項(xiàng);取值范圍: 1,text(文本); 2,nginx變量;3,text和nginx變量的組合; 注: 1.7.6版本之前取值只能是nginx變量

name: 必選項(xiàng);自定義字符串

size: 必選項(xiàng);分配內(nèi)存大小,用來(lái)保存鍵值的狀態(tài)參數(shù)

rate: 必選項(xiàng);每秒可請(qǐng)求的頻率(r/s), 或每分鐘可請(qǐng)求的頻率(r/m)

  

limit_req 語(yǔ)法: limit_req zone=name [burst=number] [nodelay]; (可理解為使用定義的限制請(qǐng)求頻率,一定是先定義后使用!也就是一定要有l(wèi)imit_req_zone指令的配置后才能使用該配置) 可配置區(qū)域: http, server, location

name: 必選項(xiàng);自定義字符串, 名字必須與limit_req_zone中zone=name這個(gè)名字一致

number: 必選項(xiàng);正整數(shù)數(shù)字, 平均每秒允許不超過(guò)limit_req_zone指令中rate規(guī)定的請(qǐng)求數(shù),并且不會(huì)超過(guò)該值所指定數(shù)量的請(qǐng)求, 可延遲請(qǐng)求的數(shù)量

nodelay: 可選配置, 表示請(qǐng)求頻率超過(guò)rate規(guī)定值后又超過(guò)burst規(guī)定值后立即返回客戶端503(可設(shè)置返回code)

  

limit_req_status 語(yǔ)法: limit_req_status code; 默認(rèn)值: 503 可配置區(qū)域: http, server, location表示超出limit_req配置的請(qǐng)求數(shù)量后返回給客戶端的錯(cuò)誤碼

使用該指令最低版本 1.3.15

  

limit_req_log_level語(yǔ)法: limit_req_log_level info | notice | warn | error; 默認(rèn)值: limit_req_log_level error; 可配置區(qū)域: http, server, location當(dāng)服務(wù)器拒絕處理由于速率超過(guò)或延遲請(qǐng)求處理而拒絕處理請(qǐng)求時(shí),設(shè)置所需的日志記錄級(jí)別。最低版本: 0.8.18

  

常見(jiàn)錯(cuò)誤:

  nginx: [emerg] zero size shared memory zone "oneip"

  ?出現(xiàn)此錯(cuò)誤都是因?yàn)樵谖粗付?strong>limit_req_zone指定就使用了limit_req指令的原因(或者limit_req中的name值和limit_req_zone中定義的name值不一致)?

?

轉(zhuǎn)載于:https://www.cnblogs.com/zhen-rh/p/7424942.html

總結(jié)

以上是生活随笔為你收集整理的nginx请求频率限制模块ngx_http_limit_req_module的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。