--
--
邮件来自列表“openresty”,专用于技术讨论!
订阅: 请发空白邮件到 openresty...@googlegroups.com
发言: 请发邮件到 open...@googlegroups.com
退订: 请发邮件至 openresty+...@googlegroups.com
归档: http://groups.google.com/group/openresty
官网: http://openresty.org/
仓库: https://github.com/agentzh/ngx_openresty
教程: http://openresty.org/download/agentzh-nginx-tutorials-zhcn.html
谢谢回复。所以写一个新脚本,combine.lua内容为:require("serv_rewrite")require("loc2_rewrite")然后放到test2接口下即可。这样是吗?:))
Hi,各位,这个问题现在这样的:因为有较多的lua脚本逻辑需要在rewrite阶段执行,但是对于同一个location,只能配置生效一个rewrite_by_lua_file指令1 目前想到的解决办法是 在需要执行多个rewrite_by_lua_file的接口中,把它们全部合并为一个merge.lua脚本,里面的内容写为require("rewrite1.lua") require("rewite2.lua") 等等
2 这样的问题就是:由于requrie函数是C实现的,所以在这个函数中不能有yield操作,这样导致上面这种方法在很多情况下不能实现。(会报错)
所以想问下:1 有什么好的方式可以解决这种需要执行多个rewrite阶段的脚本的问题?(开发者分散,导致需要在同一个接口下添加多个rewrite阶段的执行逻辑)
2 ngx_lua模块是不是可以考虑支持这种在同一个接口下面支持多个rewrite_by_lua的逻辑?想nginx的十一个阶段一样可以在一个模块中的一个阶段嵌入多个钩子。
谢谢
在 2016年7月30日星期六 UTC+8上午11:46:50,wwaz wwaz写道:在请求test2接口时,在server块配置的serv_rewrite.lua脚本得不到执行,执行了loc2_rewrite.lua脚本。其实这个原因我是知道的,就是rewrite阶段已经在find_config阶段之后,r的r->loc_conf已经指向了正确的loc_conf上下文,在ngx_lua_module模块中嵌入的rewrite阶段的钩子会将llcf->handler上挂接的handler执行。所以如果location块中的llcf->handler已经存在(即配置了rewrite_by_lua_file),在server块中的llcf->handler是不会meger到location的lcf->handler上去的所以想问下各位,如何才能满足我的要求呢?我想在访问test2接口时,执行这两个lua脚本(server块中和location块中的)
--
--
邮件来自列表“openresty”,专用于技术讨论!
订阅: 请发空白邮件到 openresty+subscribe@googlegroups.com
发言: 请发邮件到 open...@googlegroups.com
退订: 请发邮件至 openresty+unsubscribe@googlegroups.com
Hello
订阅: 请发空白邮件到 openresty...@googlegroups.com
发言: 请发邮件到 open...@googlegroups.com
退订: 请发邮件至 openresty+...@googlegroups.com