# 《API网关》第26章:动态刷新网关Nginx负载均衡配置

作者:小傅哥
博客:https://bugstack.cn (opens new window)

沉淀、分享、成长,让自己和他人都能有所收获!😄

  • 本章难度:★★★★☆
  • 本章重点:以Java程序调用Docker容器控制Nginx刷新为手段,处理服务与Docker容器间挂载的Nginx配置文件动态刷新操作
  • 课程视频https://t.zsxq.com/0bujMztY0 (opens new window)

# 一、学习指引

用于承载 HTTP 请求转换协议泛化调用 RPC 服务的网关算力不可能只有一组服务,而是一个网关算力集群化的设计实现。而对于这样一个诉求的实现,基本的核心模型结构就是负载的配置和轮训策略的使用。而这也是为什么我们会在第25章先进行 Nginx 的负载模型构建。那么在本章小傅哥将继续带着大家扩展这部分内容,让Nginx可以被动态的变更并重载配置文件。这样就可以满足当有新的网关注册、下线、调整时可以自动的生效Nginx配置。

# 二、方案设计

动态刷新的负载配置策略的方案也会根据服务的部署方式有所不同,本文是以服务在Docker容器化部署,通过Java调用容器指令的方式进行刷新,为案例进行讲解。以下是方案设计;

  • 对于一个网关的算力的动态配置和刷新,要根据服务的注册动态变更Nginx配置文件并生效。那么这里就会牵扯到Nginx的配置文件变更和刷新,如何通过Java程序进行控制等问题。
  • 那么以当前服务部署到Docker容器场景为例,Docker 是嵌入到 Linux 服务器内的,每个镜像实例的部署也都是隔离的,那么这个时候该怎么完成配置文件的互通和指令调用就成了本章要解决的核心问题。