vim? nginx.conf:
HTTP模塊(無cdn節(jié)點(diǎn))
#定義一個名為allips的limit_req_zone用來存儲session刁俭,大小是10M內(nèi)存钞澳,
#以$binary_remote_addr 為key,限制平均每秒的請求為20個琼蚯,
#1M能存儲16000個狀態(tài)地粪,rete的值必須為整數(shù)首量,
#如果限制兩秒鐘一個請求荞驴,可以設(shè)置成30r/m
#limit_req_zone $binary_remote_addr zone=allips:100m rate=50000r/s;
HTTP模塊(CDN節(jié)點(diǎn))
## 針對原始用戶 IP 地址做限制
limit_conn_zone $clientRealIp zone=TotalConnLimitZone:20m ;
limit_conn? TotalConnLimitZone? 50;
limit_conn_log_level notice;
## 針對原始用戶 IP 地址做限制
limit_req_zone $clientRealIp zone=ConnLimitZone:20m? rate=250r/s;
#limit_req zone=ConnLimitZone burst=10 nodelay; #如果開啟此條規(guī)則不皆,burst=10的限制將會在nginx全局生效
limit_req_log_level notice;
server模塊
#限制每ip每秒不超過20個請求,漏桶數(shù)burst為5
#brust的意思就是熊楼,如果第1秒霹娄、2,3,4秒請求為19個,
#第5秒的請求為25個是被允許的孙蒙。
#但是如果你第1秒就25個請求项棠,第2秒超過20的請求返回503錯誤悲雳。
#nodelay挎峦,如果不設(shè)置該選項,嚴(yán)格使用平均速率限制請求數(shù)合瓢,
#第1秒25個請求時坦胶,5個請求放到第2秒執(zhí)行,
#設(shè)置nodelay晴楔,25個請求將在第1秒執(zhí)行顿苇。
#limit_req zone=allips burst=20 nodelay;#allips HTTP模塊定義后飲用的