Lua 过滤器
在本例中,我们将展示如何将 Lua 过滤器与 Envoy 代理一起使用。
示例 Envoy 代理配置包括两个 Lua 过滤器,它们包含两个不同的函数
envoy_on_request(request_handle)
envoy_on_response(response_handle)
参见此处 了解 Envoy 的 Lua 过滤器的概述以及有关这些函数的文档。
步骤 1:构建沙箱
更改到 examples/lua
目录。
$ pwd
envoy/examples/lua
$ docker compose pull
$ docker compose up --build -d
$ docker compose ps
Name Command State Ports
--------------------------------------------------------------------------------------------
lua_proxy_1 /docker-entrypoint.sh /bin ... Up 10000/tcp, 0.0.0.0:8000->8000/tcp
lua_web_service_1 node ./index.js Up 0.0.0.0:8080->80/tcp
步骤 2:向服务发送请求
以下 curl
命令的输出应包括 Lua 过滤器添加的标头。
终端 1
$ curl -v localhost:8000 2>&1 | grep Foo
Foo: bar <-- This is added by the common Lua filter. --<
步骤 3:同时使用多个 Lua 过滤器
在示例 Envoy 代理配置中配置了两个 Lua 过滤器。但第二个过滤器只能在特定路由上工作。
以下 curl
命令的输出应包括多个 Lua 过滤器添加的标头。
终端 1
curl -v localhost:8000/multiple/lua/scripts 2>&1 | grep header_key_1
< header_key_1: header_value_1 <-- This is added by the second route-specific Lua filter. --<
另请参阅
- Envoy Lua 过滤器
了解有关 Envoy Lua 过滤器的更多信息。
- Lua
Lua 编程语言。