Hello!
2016-09-03 3:49 GMT-07:00 9cseer:
> 在openresty文档中提到每个request是在lua的协程中进行处理从而有请求隔离的效果,那么请问一下request是只要进入lua环境就处于协程中还是如lua nginx文档中提及某些指令会进入协程中进行处理?
> 也就是说request在lua协程中只是在某些特定的指令才会出现。这样理解正确吗?
>
content_by_lua*, rewrite_by_lua*, access_by_lua*,
ssl_certificate_by_lua*, ssl_session_fetch_by_lua* 这些 Lua handler
只要一进入就会处于一个 Lua coroutine 之中(或者说,处于一个 Lua 轻量级线程中)。其他配置指令则不然,比如
header_filter_by_lua* 和 balancer_by_lua*,所以这些没有 Lua coroutine 环境的 Lua
handler 都不支持 cosocket 和 ngx.sleep 这样需要 yield 的 Lua API.
Regards,
-agentzh