一、如何限流
1、Nginx限流使用的是漏桶算法,在请求处理方面,水代表来自客户端的请求,水桶代表根据”先进先出调度算法”(FIFO)等待被处理的请求队列,桶底漏出的水代表离开缓冲区被服务器处理的请求,桶口溢出的水代表被丢弃和不被处理的请求。
2、限流的基本配置
限流是通过两个主要指令:limit_req_zone和limit_req来实现的。
实验需要先准备两台虚拟机:一个作为代理服务器,一个作为真实服务器
代理服务器:192.168.43.210,在配置文件中
limit_req_zone $binary_remote_addr zone=mylimit:10m rate=1r/s;
upstream myweb {
server 192.168.43.132:80 weight=1 max_fails=1 fail_timeout=1;
}
server {
listen 80;
server_name localhost;
location /login {
limit_req zone=mylimit;
proxy_pass http://myweb;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
在真实服务器的配置文件:
server {
li

本文介绍了Nginx如何使用漏桶算法进行限流,详细阐述了限流基本配置,包括`limit_req`和`limit_req_zone`指令的用法,以及如何处理突发流量和配置日志记录。此外,还讲解了Nginx在客户端请求超出限制时返回的错误代码及自定义设置。
最低0.47元/天 解锁文章
1万+





