反向代理到上游

反向代理是 OpenResty Edge 网关的核心功能之一,本文将详细介绍如何在 Edge Admin 中配置反向代理规则。

配置步骤

1. 进入页面规则配置

首先进入 页面规则 页面,在此处添加网关反向代理到上游的页面规则。

点击 新建规则 按钮开始配置。

2. 启用 Proxy 模块

规则配置中的 Proxy 模块默认处于关闭状态,需要先点击展开该模块。

3. 配置上游服务器

3.1 创建新上游

如果尚未添加过上游,可以选择新建一个上游:

3.2 上游配置参数

上游服务器支持以下配置选项:

基础配置

  • 名称:上游的标识名称
  • 协议:支持 HTTP 或 HTTPS
  • 健康检查:为上游配置主动健康检查机制

高级配置

  • 作用代理主机名:将上游域名用作代理主机名

    注意:启用此选项时,仅能输入一个以域名作为地址的上游服务器,且代理规则中只能选择一个上游

上游服务器列表

一个上游可以包含多个上游服务器,支持为不同服务器配置权重(按权重分配回源请求量)。

上游服务器地址支持以下格式:

  1. IP 地址:直接使用 IP 地址
  2. 域名:网关服务器将使用本地 /etc/resolv.conf 配置的 resolver 或全局配置的 DNS resolver 进行解析
  3. 动态 Host 字段:使用被代理请求的 Host 字段域名(动态地址,与具体请求相关,使用场景较少)

4. 多上游配置与权重分配

4.1 多上游权重机制

系统支持同时使用多个上游,并可为每个上游配置权重。权重分配机制如下:

  1. 第一层分配:请求首先按照上游间的权重进行分配
  2. 第二层分配:分配到特定上游后,再按照该上游内部节点间的权重进行分配

4.2 灰度发布示例

例如,可以添加一个灰度上游:

和一个生产上游:

将 10% 的请求量分配到灰度上游,90% 的请求量分配到生产上游:

5. 配置匹配条件

还可以根据请求信息配置不同的回源策略。例如,针对 v2 版本的 API 进行特定配置:

配置完成

按照以上步骤,一个完整的反向代理规则就配置完成了。该规则将根据设定的条件和权重,将请求智能分发到相应的上游服务器。