反向代理到上游

反向代理是很常用的功能,我们下面介绍下如何在 Edge Admin 中配置。

首先点击进入页面规则页面,在这里添加网关反向代理到上游的规则。

反向代理到上游 - 图1

我们先点击新建规则按钮。

反向代理到上游 - 图2

规则部分中的 Proxy 模块默认是关闭的,我们先点开 Proxy 模块

反向代理到上游 - 图3

我们先看上游,如果没有添加过上游 upstream,那么我们可以选择新建一个上游

反向代理到上游 - 图4

每一个上游都需要一个名字,以及这个上游用的协议:HTTP or HTTPS, 还可以配置主动健康检查。 不过上游里面主要的内容还是上游地址:

  1. 可以是 IP
  2. 也可以是域名(再网关 node 端,会优先使用 node 端本地 /etc/resolv.conf 里配置的 resolver 来解析这个域名,或者使用全局配置里配置的 DNS resolver)
  3. 也可以是被代理到后端的 Host 字段的域名(这个地址可以是动态的,跟具体的请求 相关,一般不太会用到)

一个上游里面可以有多个后端节点,不同节点之间也可以配置不同的权重。 (会按照权重分配回源的请求量)

反向代理到上游 - 图5

除了同一个上游可以有多个后端节点,我们还可以同时使用多个上游, 多个上游之间也可以配置权重,会按照权重分配回源的请求量。 结合上游内部的权重,整理效果就是:

  1. 请求先按照上游之间的权重分配,
  2. 分配到某个上游之后,再按照上游内部节点之间的权重分配

比如我们可以再添加一个灰度的上游,分配 10% 的请求量到灰度上游集群。

反向代理到上游 - 图6

反向代理到上游 - 图7

我们再看条件部分,我们可以根据请求信息来选择不同的回源配置, 比如如上的配置,是针对 v2 版本的 API 配置,那么我们可以这么配置:

反向代理到上游 - 图8

至此,一个简单的代理规则就配置好了。