Edgelang

Edgelang 是一种规则为基础的语言,用户可以通过 Edgelang 编写请求改写规则,

并且 Edgelang 编译器会对这些规则进行跨规则的优化,生成经过优化的高效 Lua 代码。

更多详细信息,请参考最个文档:Edgelang

这里我们提供一个输出 hello world 的例子。

新建 Edgelang 模块

我们创建名为 say-hello 的 Edgelang 模块,源码如下:

true =>
    say("hello");

导出 Edgelang

点击保存并编译,然后可以从下面的编译历史中下载编译后的 zip 压缩包。

解压后将其中的 .ljbc 文件复制到 nginx.conf 中指定的 lua_package_path 目录下。

此外在列表页面,可以通过多选 Edgelang 模块的方式来一次性导出多个 Edgelang 模块。

使用 Edgelang 模块

在需要用到该规则的地方,通过 require 的方式引用模块,执行模块的 run_rewrite_phase 入口函数。

location /say_hello {
    content_by_lua_block {
        local hello = require "say-hello"
        hello.run_rewrite_phase()
    }
}