合并http与stream的lua vm, 在core模块lua block (https://github.com/openresty/meta-lua-nginx-module/pull/76),创建配置时就初始化lua vm
2020 年 Q2 新功能征集
doujiang24 目前只遇到ngx.location.capture这个限制.
原因是原本content_by_lua阶段的逻辑使用了很多capture, 因为考虑capture比完整请求要轻量.
随着项目发展, 这些逻辑其中一些要跑在timer里了, timer不支持capture, 只好到处去ngx.get_phase()区分.
看文档时我在想, 既然timer已经"will take one (fake) connection"了, 那不能干脆 take one (fake) request么, 然后timer逻辑发生在这个fake request的content_by阶段, 能使用content阶段所有功能.
毕竟没看过源码, 很可能想的过于简单.
feng
这个 PR 只是完成 shdict 在 stream 和 http 之间共享呢
完全的合并两个 lua vm,这是另外一个话题,其实合并也不太好
firlas
确实 timer 还不是完整的请求,没有 content phase 这个概念了呢,执行上也没有了呢
要支持的话,还是有一些改动量的,当然也不是要引入 content phase 才可以,有其他路子
希望支持可以配置请求到所有worker的的“广播"
tweyseo 有一个这个 module,可以参考一下: https://github.com/slact/ngx_lua_ipc
是否会支持quic呢
282441848 完成并更新了哈,感谢建议!:https://opm.openresty.org/
boy
如果社区有贡献,我们可以一起推动
- Edited
能不能在balancer_by_lua_*的set_timeouts加一个 keepalived_timeout,这个可以让我们主动的控制keepalive的超时,之前我在github上有发过一个issue
https://github.com/openresty/lua-resty-core/issues/266
jils2013
这个工程量也有一些,需要加入有 upstream zone 的概念,与此同时,搞了 keepalived_timeout 的支持,一直一起搞的也有 pool_size 的支持了
tanjinhua
https://github.com/openresty/lua-resty-mysql/pull/49 这个pr是有什么新计划吗? 我看春哥说有个更好的实现方案,但是没有后续了
- Edited
在实现oidc协议时,使用resty.http库只能指定IP,不能实现动态负载均衡,想使用ngx.location.capture发起子请求,重新走一次主流程 ,以动态负载的复用。发现ngx.location.capture不会执行主流程中的access_by_lua,从而不能实现动态选取后端节点,以及ngx.location.capture不支持自定义header 头,这样导致不能跟据header头中的host以及其它字段进行负载。
jils2013 是指希望控制每个请求放入连接池的 keealive 时间吗?这个 PR 有实现,max_requests 也可以控制:https://github.com/openresty/lua-resty-core/pull/276/files#diff-973c4ef5939470d0a1c529e4e692db8eR217,可以一起看看