[alibaba/tengine]bug: 在 balancer_by_lua 阶段中的 ngx.exit 指定的响应码无效

2024-05-15 926 views
9

在 balancer_by_lua 阶段中的 ngx.exit 指定的响应码无效

balancer_by_lua_block {
    ngx.exit(502)
}

预期得到错误 502 的应答,但当前是返回 500 。

最小复现用例:

=== TEST 1: ngx.exit(502) in balancer_by_lua_block
--- http_config
    upstream backend {
        server 0.0.0.1;
        balancer_by_lua_block {
            ngx.exit(502)
        }
    }
--- config
    location = /t {
        proxy_pass http://backend;
    }
--- request
    GET /t
--- response_body_like: 502 Bad Gateway
--- error_code: 502

回答

0

@membphis 感谢反馈,这个是由于lua-nginx-module里面的部分功能需要打上OpenResty的ptach才可以生效,比如上文中提到的balancer status需要打上这个patch 才生效。

2

牛!多谢解释。咱们的 Tengine 以后会考虑接受这种 patch 么?

3

后面我们评估下这些patch的重要性,会考虑具有重要功能的优先合并进去。暂时如果需要使用某些功能,可以文档里面说明下。

7

感谢说明,已经非常清楚。