# 《API网关》第25章:网关Nginx负载模型配置
作者:小傅哥
博客:https://bugstack.cn (opens new window)
沉淀、分享、成长,让自己和他人都能有所收获!😄
- 本章难度:★★☆☆☆
- 本章重点:通过模拟多个HTTP服务配置到 Nginx 做负载均衡,以学习API网关负载的配置和使用
- 课程视频:https://t.zsxq.com/0bOZmAjSI (opens new window)
# 一、学习指引
API 网关是用于支撑分布式 RPC 接口协议转换提供 HTTP 调用的一套服务,那么 API 网关系统就需要可横向扩展来满足系统的吞吐量诉求。所以这里需要让 API 网关来支持分布式架构部署,提供负载均衡的能力。
那么在这方面有一套非常成熟的模式就是基于 Nginx 以及 LVS、F5 相关的配置构建出负载均衡服务。在这里同样我们的 API 网关也可以被这样的方式进行处理,来满足部署需求。
本节小傅哥会先给大家介绍基于 Nginx 如何构建出一套负载均衡的网络请求模型,方便让更多的读者理解这样一个过程。
# 二、负载模型
首先我们知道,API网关是根据 HTTP 协议请求的地址转换为对应映射泛化调用的 RPC 框架。这部分请求地址被配置到数据库中。如图;
wg
是一个固定开头的地址,转换后面紧跟着所访问的具体方法。在前面章节中已经实现过 uri 映射到具体的 RPC 上。所以当我们通过在浏览器进行 HTTP 访问接口接口 http://localhost:8090/wg/activity/sayHi
时,则会访问的到对应的 api 协议转换通信服务上,完成对应的 RPC 调用和结果封装。
那么现在我们需要的是根据一个 URL 地址所访问路径的差异,访问到不同的 api 协议转换通信服务上,这样就可以完成一个负载调用的过程了。如图
那么本章节我们就先对 Nginx 配置操作处理负载,同时本章先不用把所有的 API 网关应用都启动起来。在小傅哥的学习经验中,往往我们要处理一个小问题时,先不要引入过多的条件项来干扰结果。所以我们先通过 Socket 工具模拟网关的方式进行处理。