七层负载均衡的尝试
持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第16天,点击查看活动详情
7层负载均衡
问题引入
提问:四层负载对100.1.2.3只能bind一个80端口,而有多个外部站点需要使用,该如何解决? 换个问法:有一些7层相关的配置需求,该怎么做?
SSL卸载:业务侧是http服务,用户需要用https 访问
请求重定向:浏览器访问toutiao.com自动跳转 www.toutiao.com
路由添加匹配策略:完全、前缀、正则
Header编辑
跨域支持
协议支持: websocket、grpc、quic
Nginx简介
最灵活的高性能WEB SERVER,应用最广的7层反向代理。
模块化设计,较好的扩展性和可靠性
基于master/worker架构设计
支持热部署:可在线升级 不停机更新配置文件、更换日志文件、更新服务器二进制
较低的内存消耗:1万个keep-alive连接模式下的非活动连接仅消耗2.5M内存
事件驱动:异步非阻塞模型、支持aio, mmap(内存映射)
Nginx反向代理
代理服务器功能
- Keepalive
- 访问日志
- url rewrite重写
- 路径别名
- 基于ip的用户的访问控制
- 限速及并发连接数控制
Nginx内部构造
事件驱动模型
Nginx简单调优
提升网络效率
-
连接复用
- 减少upstream建连
-
使用Cache
- 超时时间对业务的影响
-
gzip压缩
- 会增加cpu开销,需平衡使用
-
开启proxy_buffering
- 谨慎设置proxy_buffer 大小,磁盘io读写。
使用七层负载均衡
网络七层协议(二到七层含义)
所谓四层即运输层,就是基于 IP + 端口的负载均衡;
七层即应用层、就是基于 URL 等应用层信息的负载均衡;
同理,还有基于 MAC 地址的二层负载均衡和基于 IP 地址的三层负载均衡

浙公网安备 33010602011771号