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

Posted

技术标签:

【中文标题】如何通过 nginx 将路径参数传递给 lua 代码?【英文标题】:How can I pass Path parameters to lua code by nginx? 【发布时间】:2021-07-25 17:11:44 【问题描述】:

我想在我的 nginx 中使用这样的路由 /resource/state 创建一个位置,尽管 state 是一个必须传递给我的 Lua 的变量的占位符脚本并根据这个变量我想处理一些资源。

我找不到在 Nginx 中创建此类路由并将路径参数传递给 Lua 的任何文档或指南。 nginx 中是否提供路径参数,如果答案是肯定的,我如何在 mylua 代码中访问它们?

【问题讨论】:

【参考方案1】:

将正则表达式location 语法与ngx.var.VARIABLE API 结合使用:

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

注意:nginx 使用PCRE2 库来支持正则表达式。检查documentation 的语法。

【讨论】:

以上是关于如何通过 nginx 将路径参数传递给 lua 代码?的主要内容,如果未能解决你的问题,请参考以下文章

将参数传递给Lua 4中的函数[重复]

在LUA中-在_G中找到了“函数”类型的变量,如何将参数传递给它

如何将文件路径作为 bash 脚本中的参数传递给函数? [复制]

如何将参数传递给无服务器调用本地

axios将参数传递给laravel路径

如何将自定义注释中的参数传递给库中的 WebSecurityConfigurer