前言
HTTP協(xié)議的連接與請(qǐng)求
0、完成HTTP請(qǐng)求前,需要完成TCP的三次握手
1店读、HTTP請(qǐng)求建立在一次TCP連接基礎(chǔ)上
2、一次TCP連接至少產(chǎn)生一次HTTP請(qǐng)求
一攀芯、概念
1屯断、連接配置
#開辟一個(gè)空間存儲(chǔ)連接狀態(tài)
#key:指定存儲(chǔ)的key,如:用客戶端的ip作為key侣诺,那么限制的就是ip
#name:指定空間名字
#size:指定空間大小
語 法:limit_conn_zone key zone=name:size
默認(rèn)值:無
上下文:http
#使用連接限制
#zone:指定上面配置的zone的名字
#number:限制并發(fā)數(shù)
語法:limit_conn zone number;
默認(rèn)值:無
上下文:http,server,location
2裹纳、請(qǐng)求配置
#key:指定存儲(chǔ)請(qǐng)求的key
#name:指定空間名字
#size:指定空間大小
#rate:請(qǐng)求的限制,以秒為單位紧武,限制每秒請(qǐng)求個(gè)數(shù)剃氧,如:1r/s 每秒一個(gè)請(qǐng)求
語法:limit_req_zone key zone=name:size rate=rate;
默認(rèn)值:無
上下文:http
#zone:指定上面配置的zone的名字
#burst:客戶端請(qǐng)求超過速率以后,指定number個(gè)遺留到下一秒執(zhí)行
#nodelay:其他超過速率的請(qǐng)求將不延遲返回
語法:limit_req zone=name [burst=number] [nodelay]
默認(rèn)值:無
上下文:http,server,location
二阻星、配置實(shí)例
在/etc/nginx/conf.d 修改的default.conf配置朋鞍,內(nèi)容如下:
[root@sam ~]# vim /etc/nginx/conf.d/default.conf
#定義限制連接的存儲(chǔ)空間,以ip地址作為key進(jìn)行限制妥箕,空間大小為1m
limit_conn_zone $binary_remote_addr zone=conn_zone:1m;
#定義請(qǐng)求訪問的存儲(chǔ)空間滥酥,以ip地址作為key進(jìn)行限制,空間大小為1m畦幢,限制速率為每秒一次請(qǐng)求
limit_req_zone $binary_remote_addr zone=req_zone:1m rate=1r/s;
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
location / {
root /opt/site/sam;
#limit_conn conn_zone 1; #配置連接限制
#limit_req zone=req_zone burst=3 nodelay; #配置請(qǐng)求限制坎吻,指定遺留3個(gè)請(qǐng)求到下一秒執(zhí)行,其他請(qǐng)求無延時(shí)返回
#limit_req zone=req_zone burst=3;
limit_req zone=req_zone;
index index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
重新加載 nginx 配置
nginx -s reload -c /etc/nginx/nginx.conf
或
systemctl reload nginx
使用ab測(cè)試工具進(jìn)行壓測(cè)
ab -n 20 -c 20 [http://localhost/index.html](http://localhost/index.html)