基于 YAML 文件的 OpenResty Edge 配置示例

基于 YAML 文件的 OpenResty Edge 配置示例。

全局配置

globalconfigs.yaml 文件中需位于您配置目录的根目录中,并且名称固定为 globalconfigs.yaml。 其中包含 访问日志格式、自定义共享内存区、全局变量 等配置。 在 OpenResty Edge 中,您可以配置多个访问日志格式。为此,访问日志格式以数组形式进行表示。

全局 Basic 认证用户组

YAML 文件中可以包含一个或多个全局基本认证组。 此配置定义了两个全局基本认证组,每个组包含三个用户。

全局 IP 列表

YAML 文件中可以包含一个或多个全局 IP 列表。 此配置定义了两个全局 IP 列表,每个列表包含多个 IPv4 地址。 请注意,当前并未支持 IPv6 地址。

全局上游

YAML 文件中可以包含一个或多个全局上游配置。 每个全局上游配置是一个键值对,其中键是上游名称,值是一个包含以下参数的对象: 健康检查配置包含多个参数,用于定义如何进行健康检查。主要参数包括: 此配置定义了三个全局上游,分别启用了不同的设置和健康检查配置。

全局 Kubernetes 上游

YAML 文件中可以包含一个或多个全局 Kubernetes 上游配置。 每个全局 Kubernetes 上游配置都是一个键值对,其中键是上游名称,值是一个包含以下参数的对象: 健康检查配置包含多个参数,用于定义如何进行健康检查。

全局页面模板

globalpagetemplates.yaml 文件中可以包含一个或多个全局页面模板。 每个全局页面模板是一个包含以下参数的对象: 此配置定义了两个全局页面模板,分别用于 403 和 404 错误页面。

全局静态文件

globalstaticfiles.yaml 文件包含全局静态文件和目录的配置信息,而实际的文件内容存储在 files/ 目录下。

全局自定义动作

YAML 文件中可以包含一个或多个全局自定义动作。 可参考 页面规则 - 条件 可参考 页面规则 - 动作 此配置定义了三个全局自定义动作,每个动作都有特定的条件和要执行的动作。

全局 Lua 模块

全局 Lua 模块是一种强大的机制,用于实现复杂的逻辑功能。 本地配置中的 Lua 模块以 .lua 作为文件扩展名,而非 .yaml,并且必须存放在配置目录下名为 globalluamodules 的专用文件夹中。

HTTP 应用

在旧版本的 edge2yaml 命令行工具中,创建应用时会自动选择应用所需的访问日志格式,并默认将指定域名的泛域名添加到应用中。为了提供更好的灵活性和可配置性,新版本的命令行工具不再自动选择,而是通过配置文件进行指定。

应用 Basic 认证组

每个 yaml 文件包含一个或者多个应用基本认证组的配置。 每个基本认证组配置是一个包含以下参数的对象: 此配置定义了一个名为 ‘hello’ 的基本认证组,包含三个用户。

应用上游

YAML 文件中可以包含一个或多个应用上游配置。 每个应用上游配置是一个键值对,其中键是上游名称,值是一个包含以下参数的对象: 健康检查配置包含多个参数,用于定义如何进行健康检查。主要参数包括: 此配置定义了两个应用上游,一个使用 TCP 健康检查,另一个使用 HTTPS 健康检查。

应用 Kubernetes 上游

YAML 文件中可以包含一个或多个应用 Kubernetes 上游配置。 每个应用 Kubernetes 上游配置是一个键值对,其中键是上游名称,值是一个包含以下参数的对象: 健康检查配置包含多个参数,用于定义如何进行健康检查。

应用 IP 列表

YAML 文件中可以包含一个或多个应用 IP 列表。 每个 IP 列表是一个包含以下参数的对象: 此配置定义了五个 IP 列表,每个列表包含两个 IPv4 地址。

应用用户变量

YAML 文件中可以包含一个或多个应用用户变量定义。 每个用户变量是一个包含以下参数的对象: 此配置定义了五个不同类型的用户变量。

应用 WAF 白名单

YAML 文件中可以包含一个或多个应用 WAF 白名单配置。 每个 WAF 白名单配置是一个包含以下参数的对象: 可参考 页面规则 - 条件 此配置定义了两个 WAF 白名单规则,使用规则集名称及规则名称来指定要忽略的规则。

页面规则

在一个 YAML 配置文件中,您可以定义多个页面规则。 请注意 content 和 proxy 不应该在同一条页面规则中使用。

页面规则 - 条件

页面规则条件配置中允许定义多个条件,它们之间是逻辑上的与关系。这意味着仅当所有条件均满足时,页面规则才会被触发,并执行规则所定义的动作。这些动作可以是页面规则动作、Web 应用防火墙(WAF)、代理、缓存等。 请注意,在页面规则配置中,虽然条件不是必需的,但至少需要定义一个动作。

页面规则 - 动作

limitkey 或 limitkeys 的 name 参数的可选值: client-addr:客户端地址 uri:请求的 URI uri-arg:请求参数 req-cookie:请求中的 Cookie req-header:请求头 first-x-forwarded-addr:请求头中.

Web 应用防火墙 (WAF)

Web 应用程序防火墙(WAF)旨在保护 Web 应用程序免遭多种网络攻击,如跨站脚本攻击(XSS)、SQL 注入等威胁。 您可以选择使用内置规则集或自定义 WAF 规则集。

页面规则 - 代理

在 OpenResty Edge 的页面规则中,proxy 部分用于配置请求代理的行为。这包括上游服务器的选择、负载均衡策略、超时设置等。 proxy 配置是页面规则中的一个可选部分。

页面规则 - 缓存

本文档介绍了如何通过启用页面规则中的缓存选项对静态资源或较少变动的内容进行缓存操作。 利用缓存可显著提升资源的访问速度并优化最终用户的体验。 参数 cachekey 是用于生成标识缓存的 key 的数组。

页面规则 - 内容

本文档介绍了如何通过启用页面规则中的“内容”选项来使用静态文件。 在第一条页面规则中,当请求 URI 为 /file1 时,将直接返回静态文件 dir1 目录下的 setup.sh 文件中的内容。

Kubernetes 集群

每个 yaml 文件中,皆可包含一个或多个 K8s 集群。 以上配置定义 更新配置到 OpenResty Edge 中: 从 OpenResty Edge 中导出配置: 示例中均使用 -l k8s 来指定只导入/导出 Kubernetes 集群相关的配置。

发送邮件

本文档介绍如何配置邮件发送者的信息。配置文件可以位于以下两个位置之一: 在配置目录的根目录中,并以 email.yaml 命名。 在任意其他目录中,以自定义名称命名,然后通过 -e 或 –email-config-file 选项进行指定。

用户管理

从 1.2.55 版本的命令行工具开始,我们增加了用户管理的支持。该功能可以检查 YAML 配置文件中的用户信息,当用户不存在时,会在 Edge Admin 中自动创建该用户。此外,在用户创建完成后,还支持向该用户发送邮件通知。