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 14, 2015In your irule, I can see that all pool members are hosted on the same address... so the node status is useless... you must use a pool member status instead.
I changed the irule with right configuration.
The first event is to store the default pool name in the variable
default_pool
To use it, all of services must be in the same pool. if it is wrong, you must replace in the condition
[LB::status pool $default_pool member 172.24.248.85 8580] and member assignment pool $default_pool member 172.24.248.85 8580 $default_pool with the pool with the good monitor.
when CLIENT_ACCEPTED {
set default_pool [LB::server pool]
}
HTTP_REQUEST {
if { [HTTP::header Content-Type] contains "xml" } {
HTTP::collect [HTTP::header Content-Length]
}
}
when HTTP_REQUEST_DATA {
set msisdn [string trim [findstr [HTTP::payload] "" 8 ""]]
switch -glob $msisdn {
"*0" {
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 8680
}
}
"*1" {
if { [LB::status pool $default_pool member 172.24.248.85 8680] eq "up" } {
pool $default_pool member 172.24.248.85 8580
} else {
pool $default_pool member 172.24.248.85 8680
}
}
default {
send to a default pool or node
}
}
}
Another solution is to create one pool per msisdn condition with two pool members and priority group activation.
the irule become:
HTTP_REQUEST {
if { [HTTP::header Content-Type] contains "xml" } {
HTTP::collect [HTTP::header Content-Length]
}
}
when HTTP_REQUEST_DATA {
set msisdn [string trim [findstr [HTTP::payload] "" 8 ""]]
switch -glob $msisdn {
"*0" {
pool msisdn0
}
"*1" {
pool msisdn1
}
default {
send to a default pool or node
}
}
}
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
