[alibaba/tengine]tengine-2.1.2 req_status_zone获得$upstream_addr返回空值

2024-07-10 912 views
0

Hi, tengine获取req_status_zone时upstream_addr时返回了空置这个目前有什么方法可以解决? 在之前#694 中曾提及 2.1.3会加一个指令,用$upstream_变量以后开启这条指令就有数据了。不知道2年过去了是否已实现?@cfsego 望解答,不胜感激。

req_status_zone upstream_server "$scheme,$host,$upstream_addr" 50M;
req_status host upstream_server;

当前获取值中upstream_addr为空 http,192.168.1.158,,3003,6911,6,6,6,0,0,0,0,516,6,516,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

回答

9

@taoyuanyuan 开启这个对性能会有影响么?

8

基本无影响,在你的场景下,多做了一次key的字符串比较和红黑树查找。

7

功能上有两个影响点:

  • 流量进出,之前是流式记录的;现在是在请求结束的时候记录。
  • 如果使用$uri等运行中可能变化的变量(rewrite), 记录的key将是最后的值。
3

@taoyuanyuan 我将这个重新编译测试了下,是可以正常获取了 另外想问下这个后续会合并到tengine上还是说tengine会用其他方式去实现server无数据的这个问题

5

@wenskys

另外想问下这个后续会合并到tengine上还是说tengine会用其他方式去实现server无数据的这个问题

后续会merge到tengine

5

Test tengine2.3.0master did not fix the bug There's still this problem. Can you update and repair it?

@chobits @taoyuanyuan @cfsego

Thanks very much.

https://github.com/alibaba/tengine/issues/1196

req_status_zone upstream_server "$scheme,$host,$upstream_addr" 50M; req_status upstream_server;

Tengine req_status_zone gets $upstream_addr to return null value