---Nginx可以通过实现流量控制(流控)来限制对服务器的访问并保护其免受过载的影响,限流有以下几种:
正常限制访问频率(正常流量)
突发限制访问频率(突发流量)
限制并发连接数
黑白名单配置
---正常限制访问频率(正常流量)
流量限制”配置两个主要的指令,limit_req_zone和limit_req,如下所示:
limit_req_zone $binary_remote_addr zone=mylimit:10m rate=10r/s;
server {
location /login/ {
limit_req zone=mylimit;
proxy_pass http://my_upstream;
}
}
---突发限制访问频率(突发流量)
location /login/ {
limit_req zone=mylimit burst=20;
proxy_pass http://my_upstream;
}
---限制并发连接数
#速率限流配置
limit_req_zone $binary_remote_addr zone=ipRateLimit:10m rate=2r/s;
#并发量限流-单个IP控制
limit_conn_zone $binary_remote_addr zone=perip:10m;
#并发量限流-整个服务控制
limit_conn_zone $server_name zone=perserver:10m;
server {
listen 80;
server_name localhost;
location ~ .*\.(woff|ico|css|js|gif|jpg|jpeg|png)$ {
root /usr/local/openrestyDir/pages/;
}
location /msitems/ {
#限流配置
#limit_req zone=ipRateLimit burst=5 nodelay;
#并发量限流
limit_conn perip 10;
limit_conn perserver 100;
root /usr/local/openrestyDir/pages/;
}
}上面配置了单个IP同时并发连接数最多只能10个连接,并且设置了整个虚拟服务器同时最大并发数最多只能100个链接。当然,只有当请求的header被服务器处理后,虚拟服务器的连接数才会计数。
---黑白名单
include blockip.conf;
# 屏蔽单个ip访问
deny IP;
# 允许单个ip访问
allow IP;
# 屏蔽所有ip访问
deny all;
# 允许所有ip访问
allow all;
#屏蔽整个段即从123.0.0.1到123.255.255.254访问的命令
deny 123.0.0.0/8
#屏蔽IP段即从123.45.0.1到123.45.255.254访问的命令
deny 124.45.0.0/16
#屏蔽IP段即从123.45.6.1到123.45.6.254访问的命令
deny 123.45.6.0/24
签名:这个人很懒,什么也没有留下!