标签:http zone 中间件 Nginx 限流 limit location localhost 分布式
4、限流定义
limit_conn_zone $server_name(请求限流对象名称) zone=perserveer:10m(请求量大小); ---服务端限流
location /{
limit_conn perserver 1;(并发量配置)
proxy_pass http://localhost://xxx;
}
缺点:和客户端无关,导致正常客户无法使用
解决方法:客户端限流
limit_conn_zone $binary_remote_addr(获取客户端ip地址) zone=perserveer:10m(请求量大小); ---客户端限流
location /{
limit_conn perserver 1;(客户端并发量配置)
proxy_pass http://localhost://xxx;
}
5、平滑限流 解决类似 客户端只能处理1000个并发,高峰100万请求,进行分片
limit_req_zone $binary_remote_addr zone=one:10m rate=1000r/s;(每s处理1000个,1ms处理一个,可能会导致全部请求失败)
location /{
limit_req zone=one;
proxy_pass http://localhost://xxx;
}
使用“令牌桶”算法实现
1ms处理一次,1ms生成一个token放到zone(桶),1ms来3个请求,只能生成一个token,2个请求会出现失败;
允许突发量
burst=3允许的突发量;每毫秒允许生成3个token存在一个缓冲的队列中;
location /{
limit_req zone=one burst=3;
proxy_pass http://localhost://xxx;
}
nodelay 不允许延迟 (不需要token)
location /{
limit_req zone=one burst=3 nodelay;
proxy_pass http://localhost://xxx;
}
限流缺点
全局限流,通常情况下对某些接口进行限流,配置指定路径(学习URL匹配);
location=/api/getProduct{
limit_req zone=one burst=3 nodelay;
proxy_pass http://localhost://xxx;
}
6、http代理不安全,更换https(需要证书)
https的虚拟主机
ssk_certificate xxxx/server-cert.pem
ssk_certificate_key xxxx/server-key.pem
待续……
标签:http,zone,中间件,Nginx,限流,limit,location,localhost,分布式 来源: https://www.cnblogs.com/tl1025/p/16076715.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。