高并发下Nginx配置限流

简介: 【8月更文挑战第16天】

高并发架构分析
如何提升系统的并发能力?
• 互联网分布式架构设计,提高系统并发能力的方式,方法论上主要有两种:垂直扩展(Scale
Up)与水平扩展(Scale Out)。
• 垂直扩展:提升单机处理能力。垂直扩展的方式又有两种。
• 增强单机硬件性能
• 提升单机架构性能
在互联网业务发展非常迅猛的早期,如果预算不是问题,强烈建议使用“增强单机硬件性能”的
方式提升系统并发能力,因为这个阶段,公司的战略往往是发展业务抢时间,而“增强单机硬件性
能”往往是最快的方法。
不管是提升单机硬件性能,还是提升单机架构性能,都有一个致命的不足:单机性能总是有极限
的。所以互联网分布式架构设计高并发终极解决方案还是水平扩展。
水平扩展:只要增加服务器数量,就能线性扩充系统性能。

高并发下Nginx配置限流
三种方式实现:
• limit_conn_zone
• limit_req_zone
• ngx_http_upstream_module
前两种只能对客户端(即单一ip限流)

Ab工具:
• Centos安装:yum install httpd-tools –y
• 测试:ab -c 10 -n 1000 http://www.test.com/
image.png

2高并发下Nginx配置限流
• limit_conn_zone
http{
limit_conn_zone $binary_remote_addr zone=one:10m;
server
{
......
limit_conn one 10;
......
}
}
• 其中“limit_conn one 10”既可以放在server层对整个server有效,也可以放在location中只对单独的location有效
• 该配置表明:客户端的并发连接数只能是10个。

• limit_req_zone
http{
limit_req_zone $binary_remote_addr zone=req_one:10m rate=1r/s;
server
{
......
limit_req zone=req_one burst=120;
......
}
}
• 其中“limit_req zone=req_one burst=120”既可以放在server层对整个server有效,也可以放在location中只对单独的location有

• rate=1r/s的意思是每个地址每秒只能请求一次,也就是说令牌桶burst=120一共有120块令牌,并且每秒钟只新增1块令牌,120块令
牌发完后,多出来的请求就会返回503
ngx_http_upstream_module(推荐)
upstream xxxx{
server 127.0.0.1:8080 max_conns=10;
server 127.0.0.1:8081 max_conns=10;
}
• 该模块是提供了我们需要的后端限流功能的
• 该模块有一个参数:max_conns可以对服务端进行限流,可惜在商业版nginx中才能使用
• 在nginx1.11.5版本以后,官方已经将该参数从商业版中脱离出来了,也就是说只要我们将生产
上广泛使用的nginx1.9.12版本和1.10版本升级即可使用

目录
相关文章
|
1月前
|
缓存 应用服务中间件 网络安全
Nginx中配置HTTP2协议的方法
Nginx中配置HTTP2协议的方法
95 7
|
2月前
|
应用服务中间件 BI nginx
Nginx的location配置详解
【10月更文挑战第16天】Nginx的location配置详解
|
2月前
|
缓存 负载均衡 安全
Nginx常用基本配置总结:从入门到实战的全方位指南
Nginx常用基本配置总结:从入门到实战的全方位指南
344 0
|
9天前
|
存储 应用服务中间件 nginx
nginx反向代理bucket目录配置
该配置实现通过Nginx代理访问阿里云OSS存储桶中的图片资源。当用户访问代理域名下的图片URL(如 `http://代理域名/123.png`)时,Nginx会将请求转发到指定的OSS存储桶地址,并重写路径为 `/prod/files/2024/12/12/123.png`。
41 5
|
1月前
|
缓存 负载均衡 算法
如何配置Nginx反向代理以实现负载均衡?
如何配置Nginx反向代理以实现负载均衡?
|
1月前
|
存储 负载均衡 中间件
Nginx反向代理配置详解,图文全面总结,建议收藏
Nginx 是大型架构必备中间件,也是大厂喜欢考察的内容,必知必会。本篇全面详解 Nginx 反向代理及配置,建议收藏。
Nginx反向代理配置详解,图文全面总结,建议收藏
|
22天前
|
存储 应用服务中间件 nginx
Nginx限流怎么做
Nginx 通过 limit_req 模块实现限流,保护后端服务器。配置示例中,定义了限流区域 `limit`,每秒允许 10 个请求,客户端 IP 超过限流后允许 20 个突发请求,超出则立即返回 503 错误。
45 6
|
25天前
|
负载均衡 前端开发 应用服务中间件
负载均衡指南:Nginx与HAProxy的配置与优化
负载均衡指南:Nginx与HAProxy的配置与优化
44 3
|
1月前
|
应用服务中间件 API nginx
nginx配置反向代理404问题
【10月更文挑战第18天】本文介绍了使用Nginx进行反向代理的配置方法,解决了404错误、跨域问题和302重定向问题。关键配置包括代理路径、请求头设置、跨域头添加以及端口转发设置。通过调整`proxy_set_header`和添加必要的HTTP头,实现了稳定的服务代理和跨域访问。
281 1
nginx配置反向代理404问题
|
1月前
|
负载均衡 监控 应用服务中间件
配置Nginx反向代理时如何指定后端服务器的权重?
配置Nginx反向代理时如何指定后端服务器的权重?
63 4