如何在lua中获取当前nginx/openresty位置的路径?

我有以下位置块:

location /somewhere/ {
    access_by_lua_file /path/to/file.lua;
    add_header X-debug-message "Using location: /somewhere/" always;
    ...
}

我想要做两件事:

  1. 我想将头设置行移到lua文件中。
  2. 为此,我必须从变量中读取位置定义(匹配字符串/正则表达式/...),而不是将它输入为静态字符串("/somewhere/")。

因此最终它应该这样看起来,包含在lua文件中。

location /somewhere/ {
    access_by_lua_file /path/to/file.lua;
    ...
}

我的问题是:我不知道...

  1. ...是否有一个变量存储位置描述("/somewhere/"),而不是请求的URI / URL / PATH,
  2. 如果有 - 那个变量在哪里可以找到。

那么我如何从lua代码中访问这些信息?

示例

调用的URL:https://mydomain.nowhere/somewhere/servicex/1234

匹配的位置:"location /somewhere/ { ..."

想要获取的字符串:"/somewhere/"(因此确切地是位置块的定义)。

点赞