应用管理

在 Plus Console 中,会以应用的方式对配置文件进行管理。

一份 OpenResty 完整的配置文件目录结构通常如下所示:

conf/
conf/nginx.conf
conf/conf.d/vhost1.conf
conf/conf.d/vhost2.conf
conf/ssl/cert.crt
conf/ssl/cert.key
conf/ssl/ca.crt
lua/foo.lua
lua/bar.lua
...

Plus Console 应用也会按照这样的目录结构对配置文件进行管理。

目前应用类型只支持独占类型,即一个应用中管理着一个 OpenResty 实例中的所有配置文件。

下面我们将详细介绍应用中的各项功能。

创建应用

在应用界面,点击 New Application 按钮创建应用。

我们可以在弹框中填写应用名称,应用所在分区,还可以选择是否使用默认配置,或者选择导入现有配置。

点击 Create 按钮,创建完成后会自动跳转到应用详情页。

配置文件的新增,删除和重命名操作都在左侧目录树内完成。如果要编辑文件内容,点击目录树上的文件,在右侧编辑框中进行文件的编辑。

在应用列表也可以看到刚刚的新建的应用,点击应用名称会进入应用详情页面。

导入配置文件

在应用详情页面可以导入现有的开源 OpenResty 应用配置文件。

目前只支持导入 zip 包,zip 包的目录层级类似这样:

conf/
conf/nginx.conf
conf/conf.d/
conf/conf.d/vhost.conf

一个完整的应用至少包括 conf 目录 和 conf/nginx.conf 文件。

选择 zip 包并上传完成之后,下面的目录树就会出现刚刚上传的配置文件了。

特殊文件类型

除了普通的配置文件,还有几种特殊的文件类型,会被识别成不同的功能模块。

动态指标

.sql 结尾的文件会被识别成动态指标,文件名为指标名。

动态指标用法可以参考这个文档:动态指标

Edgelang

.edge 结尾的文件会被识别成 Edgelang 模块,文件名为模块名。

Edgelang 用法可以参考这个文档:Edgelang

WAF

.waf 结尾的文件会被识别成 WAF 模块,文件名为 WAF 规则集名称。

WAF 模块用法可以参考这个文档:WAF 模块

Wasm

在 wasm32 以及 wasm64 创建的文件夹以及 C 文件,会被识别成 Wasm 模块,文件名为 Wasm 模块名。wasm32 下的模块会被编译成 wasm32 的 so 文件,wasm64 下的模块会被编译成 wasm 64 位的 so 文件。

Wasm 模块用法可以参考这个文档:Wasm

验证配置文件

配置文件修改之后,我们需要验证 nginx 配置文件,或者动态指标,Edgelang,WAF,Wasm 源文件修改后有没有引入语法错误,可以点击编辑框上方的 Validate 按钮,

如果检查失败,编辑框下面会显示本次验证的错误消息,编辑框中也会定位到错误行。

运行测试

除了配置文件的语法检查,我们还提供了运行测试功能。

运行测试之前需要添加测试请求,测试请求支持配置请求方法、请求 URL、请求头以及请求体。

配置完测试请求之后,点击编辑框上方的 Run Test 按钮启动测试。

测试过程中会在沙箱环境中启动当前应用,然后按照测试集给沙箱中的应用发送测试请求。

如果测试请求正常返回,编辑框下面会显示请求的响应信息:

我们还会收集每次测试过程中应用产生的访问日志和错误日志,给用户提供更多的报错和调试信息。

另外,在应用内还支持创建自签证书,可以用于生成测试 HTTPS 请求所需要的服务端证书。

导出配置文件

如果服务器集群不在 Plus Console 中管理,则需要手动将应用的配置文件部署到服务器上。我们可以通过编辑框上方的 Export Compiled 按钮进行导出,会得到一个 zip 压缩包。

这个压缩包内的动态指标,Edgelang、WAF 和 Wasm 模块都是编译后可以直接使用的 .ljbc.so 文件。

发布配置文件

应用内的配置文件支持版本控制,发布之后会生成一条发布记录,生成发布记录之后,未来可以回退到之前的历史发布。如果服务器集群是由 Plus Console 管理的,应用发布后会自动将配置文件推送到服务器上并生效。

在应用内修改完文件,点击保存后,修改的内容会被保存,此时右上角会出现提示,点击此提示,即可跳转到发布页面。

可以点击 Check for details 按钮,查看变更详情。

在发布页面可以选择 清除未发布更改发布更改

  • 清除未发布更改:撤销当前所有未发布的更改,文件内容会恢复到上一次已发布版本的状态。

  • 发布更改:保留当前所有更改,生成一条发布记录。未来文件可以回滚到这个发布版本的状态。

注意,发布之前会检查当前 Console 有没有配置集群,如果没有可用集群会提示先创建集群。

发布完成之后,下方发布历史中会出现一条发布记录。

如果我们再新增一条发布记录,则之前的发布历史右侧列表会出现 Rollback to this Release 按钮,我们可以点击这个按钮回滚到之前的历史版本。

回滚成功之后会生成一条回滚历史。