如何识别在 iRule 中处理 HTTP_REQUEST 的池成员

How to identify the pool member that processed an HTTP_REQUEST in an iRule

为了帮助诊断生产问题,我想插入处理 HTTP_RESPONSE 的池成员的名称。

我有一个配置了三个成员(WEB1、WEB2、WEB3)的池 (my_application_pool),如下所示:

我有一个看起来像这样的 iRule:

when HTTP_REQUEST {
      pool my_application_pool
}

when HTTP_RESPONSE {
      HTTP::header insert pool_member_name value_1
}

如果处理请求的是WEB2,如何将“value_1”替换为“WEB2”

谢谢!

您可以将其添加到上面的规则中以填充 value_1:

when LB_SELECTED {
  set value_1 [LB::server addr]
}

如果您使用具有相同地址 and/or 路由域的多个端口,您可以将其扩展为:

set value_1 "[LB::server addr]%[LB::server route_domain]:[LB::server port]"