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