Nginx服務(wù)器限速功能(四)
- 作者:新網(wǎng)
- 來(lái)源:新網(wǎng)
- 瀏覽:100
- 2018-05-12 14:21:43
擴(kuò)展前面的例子,我們可以對(duì)白名單上的IP地址應(yīng)用速率限制:
白名單上的IP地址與第一個(gè)速率限制( req_zone )不匹配,但匹配第二個(gè)( req_zone_wl ),因此每秒限制為15個(gè)請(qǐng)求。
擴(kuò)展前面的例子,我們可以對(duì)白名單上的IP地址應(yīng)用速率限制:
<
div>
白名單上的IP地址與第一個(gè)速率限制( req_zone )不匹配,但匹配第二個(gè)( req_zone_wl ),因此每秒限制為15個(gè)請(qǐng)求。
不在白名單上的IP地址與兩個(gè)速率限制相匹配,所以限制性較強(qiáng)的一個(gè)適用:每秒5個(gè)請(qǐng)求。
配置相關(guān)功能
記錄
默認(rèn)情況下,Nginx 記錄由于速率限制而延遲或丟棄的請(qǐng)求,如下例所示:
日志條目中的字段包括:
limitingrequests - 指示日志條目記錄速率限制。
excess - 此請(qǐng)求表示的配置速率每毫秒的請(qǐng)求數(shù)。
zone - 定義強(qiáng)加的限制的區(qū)域。
client - 發(fā)出請(qǐng)求的客戶(hù)client IP地址。
request - 客戶(hù)端request實(shí)際HTTP請(qǐng)求。
host - Host HTTP頭的值。
默認(rèn)情況下,Nginx在error級(jí)別記錄被拒絕的請(qǐng)求,如上例中的[error]所示(它記錄延遲的請(qǐng)求在一個(gè)較低的級(jí)別,所以默認(rèn)
info )。 要更改日志級(jí)別,請(qǐng)使用limit_req_log_level指令。 在這里,我們?cè)O(shè)置了拒絕的請(qǐng)求來(lái)記錄warn級(jí)別:
錯(cuò)誤代碼發(fā)送到客戶(hù)端
默認(rèn)情況下,當(dāng)客戶(hù)端超出速率限制時(shí),Nginx以狀態(tài)碼503作為響應(yīng)。
使用limit_req_status指令來(lái)設(shè)置一個(gè)不同的狀態(tài)碼(在這個(gè)例子中是444 ):
拒絕所有請(qǐng)求到特定的位置
如果您想要拒絕所有特定URL的請(qǐng)求,而不是限制它們,請(qǐng)為其配置一個(gè)塊并包含all指令:
以上就是我們關(guān)于Nginx和Nginx Plus更多速率限制功能以及對(duì)客戶(hù)端IP地址配置不同的白名單和黑名單來(lái)匹配不同的高級(jí)配置的介紹,同時(shí)我們也介紹了如何記錄被拒絕和延遲的記錄。希望通過(guò)今天本文章的分享,能夠?qū)Υ蠹矣兴鶐椭?。同時(shí)如果大家有更好的見(jiàn)解也可以與我們交流互動(dòng),我們將十分歡迎。