如何通过 Nginx 将路径参数传递给 lua 代码?

我想在我的 Nginx 配置中创建一个名称为 /resource/{{state}} 的 Location,其中 {{state}} 是一个变量占位符,必须传递给我的 Lua 脚本,并根据这个变量来处理一些资源。

我找不到有关在 Nginx 中创建此类路由并传递路径参数到 Lua 的任何文档或指南。是否可以在 Nginx 中使用路径参数,如果是,如何在我的 Lua 代码中访问它们?

点赞
用户9783845
用户9783845

使用带有ngx.var.VARIABLE API的正则表达式location语法:

location ~ ^/resource/(?<state>[^/]+)/?$ {
    content_by_lua_block {
        ngx.say(ngx.var.state)
    }
}

注意:nginx使用PCRE2库支持正则表达式。请查阅文档以获得语法。

2021-05-03 14:52:34