nginx lua 能不能返回变量到 nginx

2017-11-06 12:41:35 +08:00
 holinhot
例如 lua 计算结果为$key=abc1233
然后 nginx 配置文件里设置 rewrite ^ /$key;

这样行不行,不在 lua 里返回重定向
1972 次点击
所在节点    问与答
3 条回复
holinhot
2017-11-06 12:43:16 +08:00
holinhot
2017-11-06 12:55:07 +08:00
找到了,等下测试一下

location /foo {
set $my_var ''; # this line is required to create $my_var at config time
content_by_lua_block {
ngx.var.my_var = 123;
...
}
}
dndx
2017-11-06 13:20:44 +08:00
LZ 的做法是不行的,因为 content phase 跑在 rewrite phase 之后,你在 content_by_lua_block 改 my_var 对 rewrite 工作是没有任何影响的。

正确的做法应该是用 set_by_lua,或者更好的是直接用 ngx.exec() 来做内部跳转,还省了变量的开销。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/403908

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX