我将尝试尽可能具有描述性,因为我没有接受过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变量,那么可能会发生什么?
答案 0 :(得分:2)
我相信你在这里有一个tcl错误,变量赋值不能包含等号。
例如
set host_num 0
...
if { .... } {
set host_num (....)
}
您是否在/ var / log / ltm日志中看到任何错误消息?
我会尝试在代码中添加日志记录语句来跟踪变量值的变化。