Nginx 反向代理(二)
一、Nginx 限流
什么是限流
限制客户端的请求数到达服务器就是限流。
条件
nginx 服务器
项目实例【以查询商品为例,启动两个实例 ,端口:5000\5001】
使用 jemter 压测
Nginx 实现限流
条件
限流定义
项目项目实例
新建控制器
代码如下:
启动 nginx ,命令如下:
限流原理
限流原理
当客户端发送请求到 nginx 服务其中,nginx 会将请求存储到 10m 的空间中,同时反向代理根据限流的配置,到空间中取并发请求,在调用代理处理并发请求;同时这地方有几个处理请求的状态:处理中,处理成功和处理失败;处理中:后端代理还没有处理完成从空间取的并发请求,则会将请客户端发送过来的请求,全部拒绝返回;
处理完成:后端代理已经完成从空间取的并发请求,则再到空间中取并发请求,再交给后端代理处理请求;
执行完 Jemter 的结果如下:
比如以查询商品为例,当客户端发送请求到 nginx 中,nginx 会将请求存储到空间中,反向代理会根据限量配置数量(例如:配置的并发量为:2)到空间中取 2 个并发的请求,交给代理服务器处理请求,同时反向代理再会到空间中取 2 个并发的请求,交给代理服务器,如果代理服务上一次的请求没有处理完成,则会将该取 2 个的请求拒绝返回;同时反向代理再会到空间中取 2 个并发的请求,如果第一次的请求处理完成 1 个,则会将从空间取的 2 个请求中取 1 个交个代理服务处理,另一个拒绝返回;同时反向代理再会到空间中取 2 个并发的请求,如果第一次的请求处理完成,则会将取 2 个并发请求再交给代理服务器处理,......... 直到处理完成。
用计数器的算法来实现的。
缺陷:
可能导致正常的客户端不能使用 解决方案:用客户端限流
优点:
节约资源
客户端限流
条件
定义客户端限流
原理
执行原理和限流的基本上原理一样。
平滑限流
条件
定义平滑限流
二、Nginx Https
配置 HTTPS
条件
配置虚拟主机
版权声明: 本文为 InfoQ 作者【@@神农】的原创文章。
原文链接:【http://xie.infoq.cn/article/72031fc0c543f6268629cf30e】。未经作者许可,禁止转载。
评论