使用 lua 模块在 nginx 中将 endpath 设为小写
Posted
技术标签:
【中文标题】使用 lua 模块在 nginx 中将 endpath 设为小写【英文标题】:make endpath to lowercase in nginx using lua module 【发布时间】:2021-07-23 16:33:46 【问题描述】:我想将请求 url 设置为小写,然后再将其设置为代理传递。
这是我的 nginx 文件
location ^~ /admin/(?<endpath>.*)
set_by_lua ngx.var.endpath string.lower(ngx.var.endpath)
proxy_pass http://api.sample.com/api/portal/admin/$endpath$is_args$args;
但我收到错误:无效的变量名“ngx.var.endpath”
【问题讨论】:
你在哪里创建了那个变量? @Piglet: 因为我的位置是^~ /admin/(?<endpath>.*)
所以ngx.var
应该有endpath
【参考方案1】:
我不太了解nginx,但是根据docs lua 代码应该是一个字符串。
所以不是
set_by_lua ngx.var.endpath string.lower(ngx.var.endpath)
试试类似的东西
set_by_lua $endpath 'return string.lower(ngx.var.endpath)'
【讨论】:
以上是关于使用 lua 模块在 nginx 中将 endpath 设为小写的主要内容,如果未能解决你的问题,请参考以下文章