是不是可以做一些增强 nginx upstream 部分的功能,例如在保证处理效率的前提下又能在 lua 处理响应的 body,例如管理对上游的链接池等。
2020 年 Q2 新功能征集
282441848
多谢报告,这里应该只需要很小的改动,应该很快就可以修复更新到 opm
firlas
你是希望在 timer 里面使用 ngx.location.capture 么?
这个理论上也可以搞,不过可能相对改动大一些。
timer 里面选择使用 location.capture 而不使用 cosocket 是出于什么目的呢
还有其他希望在 timer 里面支持的么?
imilli
哈哈,有点多,也欢迎大家一起来贡献,齐头并进发展更快
合并http与stream的lua vm, 在core模块lua block (https://github.com/openresty/meta-lua-nginx-module/pull/76),创建配置时就初始化lua vm
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 的支持了