Forum Discussion
Al-Mutlaq_21911
Nimbostratus
Aug 26, 2015direct traffic based on information from the XML request
Dear All,
I need a solution on IRULE for example to solve the following scenario:
I have 10 servers that will receive XML requests. the unique ID in each XML request will be a number such ...
Stanislas_Piro2
Cumulonimbus
Dec 24, 2015Ok,
the issue is because you stripped one part of the irule. if the irule use only query parameter, you can remove the
if {[string length $msisdn] } {... I answered this issue previously before you remove the XML part by adding a else statement } else { pool $default_pool member 172.24.248.85 8080 }.
The irule become:
when CLIENT_ACCEPTED {
set default_pool [LB::server pool]
}
when HTTP_REQUEST {
set msisdn [URI::decode [URI::query [HTTP::uri] msisdn]]
switch -glob $msisdn {
"*0" {
if { [LB::status pool $default_pool member 172.24.248.85 8080] eq "up" } {
pool $default_pool member 172.24.248.85 8080
} else {
pool $default_pool member 172.24.248.85 8180
}
}
"*1" {
if { [LB::status pool $default_pool member 172.24.248.85 8180] eq "up" } {
pool $default_pool member 172.24.248.85 8180
} else {
pool $default_pool member 172.24.248.85 8080
}
}
"*2" {
if { [LB::status pool $default_pool member 172.24.248.85 8280] eq "up" } {
pool $default_pool member 172.24.248.85 8280
} else {
pool $default_pool member 172.24.248.85 8380
}
}
"*3" {
if { [LB::status pool $default_pool member 172.24.248.85 8380] eq "up" } {
pool $default_pool member 172.24.248.85 8380
} else {
pool $default_pool member 172.24.248.85 8280
}
}
"*4" {
if { [LB::status pool $default_pool member 172.24.248.85 8480] eq "up" } {
pool $default_pool member 172.24.248.85 8480
} else {
pool $default_pool member 172.24.248.85 8580
}
}
"*5" {
if { [LB::status pool $default_pool member 172.24.248.85 8580] eq "up" } {
pool $default_pool member 172.24.248.85 8580
} else {
pool $default_pool member 172.24.248.85 8480
}
}
"*6" {
if { [LB::status pool $default_pool member 172.24.248.85 8680] eq "up" } {
pool $default_pool member 172.24.248.85 8680
} else {
pool $default_pool member 172.24.248.85 8780
}
}
"*7" {
if { [LB::status pool $default_pool member 172.24.248.85 8780] eq "up" } {
pool $default_pool member 172.24.248.85 8780
} else {
pool $default_pool member 172.24.248.85 8680
}
}
"*8" {
if { [LB::status pool $default_pool member 172.24.248.85 8880] eq "up" } {
pool $default_pool member 172.24.248.85 8880
} else {
pool $default_pool member 172.24.248.85 8980
}
}
"*9" {
if { [LB::status pool $default_pool member 172.24.248.85 8980] eq "up" } {
pool $default_pool member 172.24.248.85 8980
} else {
pool $default_pool member 172.24.248.85 8880
}
}
default { pool $default_pool member 172.24.248.85 8080 }
}
}
But you can look at my previous irule assigning a list of pool members and not only 2...
Help guide the future of your DevCentral Community!
What tools do you use to collaborate? (1min - anonymous)Recent Discussions
Related Content
DevCentral Quicklinks
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com
Discover DevCentral Connects
