nginx中的limit req限速設定配置示例

2021-09-20 21:00:23 字數 1970 閱讀 6768

wiki:

漏桶原理(leaky bucket):

例項:?1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

#以使用者二進位制ip位址,定義三個漏桶,滴落速率1-3req/sec,桶空間1m,1m能保持大約16000個(ip)狀態

limit_req_zone $binary_remote_addr zone=qps1:1m  rate=1r/s;

limit_req_zone $binary_remote_addr zone=qps2:1m  rate=2r/s;

limit_req_zone $binary_remote_addr zone=qps3:1m  rate=3r/s;

server

#速率qps=1,峰值burst=5,不延遲請求

#加了nodelay之後,漏桶控制一段時長內的平均qps = 漏桶速率,允許瞬時的峰值qps > 漏桶qps

#所以峰值時的最高qps=(brust+qps-1)=5

#請求不會被delay,要麼處理,要麼直接返回503

#客戶端需要控制qps每秒請求數,才不會觸發limit_req_error_log

# 例2:每隔5秒發起一次達到峰值的併發請求,由於時間段內平均qps=1 所以仍然符合漏桶速率:

#time  request   refuse  sucess

#00:01     5     0     5

#00:05     5     0     5

#00:10     5     0     5

# 例3:連續每秒發起併發請求=5,由於時間段內平均qps>>1,超出的請求被拒絕:

#time  request   refuse   sucess

#00:01     5     0      5

#00:02     5     4      1

#00:03     5     4      1

location /nodelay

}

nginx中的if語句

if指令 格式 if 條件判斷 一 if語句中的判斷條件 nginx 1 正規表示式匹配 等值比較 與指定正規表示式模式匹配時返回 真 判斷匹配與否時區分字元大小寫 與指定正規表示式模式匹配時返回 真 判斷匹配與否時不區分字元大小寫 與指定正規表示式模式不匹配時返回 真 判斷匹配與否時區分字元大小寫...

Nginx中的原子操作

原子操作在系統程式設計中屬於基礎工具。nginx與其他軟體很不一樣,它幾乎把所有作業系統的功能都封裝了一遍,估計是出於程式設計一致性和可移植性的考慮。對於原子操作,nginx提供一組介面。這裡我們只研究有gcc 4.1以上版本的情況,因為nginx對不同的情況有不同的實現,gcc應該還是比較普遍的吧...

Linux中Nginx的安裝

官網 2.上傳並解壓nginx tar zxvf nginx 1.8.1 tar.gz c usr local src3.編譯nginx 進入到nginx原始碼目錄 cd usr local src nginx 1.8 1 檢查安裝環境,並指定將來要安裝的路徑 configure prefix us...