1

由于我在 F5 负载平衡器方面没有受过良好的培训,因此我将尽可能地进行描述。基本上我有一个看起来像这样的 iRule(伪代码):

when HTTP_REQUEST { 
set host_num=0
if uri contains /serv prefix
       set host_num=(digit after /serv) 

}

when LB_SELECTED {
    if { $host_num != 0 } {
            #reselect the appropriate pool member that corresponds to the host_num
    }
}

我的问题基本上是我的 host_num 变量在我在 HTTP_REQUEST 中设置它和我在 LB_SELECTED 事件中实际需要它之间丢失了。

该系统多年来一直运行良好。直到几天前,当我尝试添加另一个强制所有 http 流量为 http 1.0 而不是 1.1 的 irule 时。我已经删除了这个 irule,但这个问题仍然存在。HTTP 配置文件中是否有我缺少的设置?我已经检查了我的其他 irules,但它们都没有可能覆盖它的 host_num 变量,那么会发生什么?

4

1 回答 1

2

我相信你这里有一个 tcl 错误,变量赋值不能包含等号。

例如。

set host_num 0
...
if { .... } {
    set host_num (....)
}

您是否在 /var/log/ltm 日志中看到任何错误消息?

我会尝试在代码中添加日志语句来跟踪变量值的变化。

于 2013-05-06T10:30:13.287 回答