Forum Discussion

tqu_93931's avatar
tqu_93931
Icon for Nimbostratus rankNimbostratus
Sep 23, 2012

Direct HTTP request from an IP to specific pool members

We have an iRule works OK as below. HTTP requests are directed to coresponding pools respectively according to URI.

 

Rule_1:

 

 

when HTTP_REQUEST {

 

switch -glob [HTTP::uri] {

 

"/video/*" { pool VIDEO }

 

"/audio/*" {pool AUDIO}

 

"/text/*" {pool TEXT}

 

default {pool default_pool}

 

}

 

}

 

 

Now we want to divert all HTTP requests coming from IP 1.2.3.4 to the first member of each pool.

 

I add a new rule Rule_2 above Rule_1.

 

 

Rule_2:

 

 

when HTTP_REQUEST {

 

if { [HTTP::header "True-Client-IP"] equals "1.2.3.4"} {

 

log local0. " Requests from 1.2.3.4"

 

switch -glob [HTTP::uri] {

 

"/video/*" { pool VIDEO member video_a}

 

"/audio/*" {pool AUDIO member audio_a}

 

"/text/*" {pool TEXT member text_a}

 

default {pool default_pool member default_a}

 

}

 

}

 

}

 

 

 

 

It doesn't work. I can see the log " Requests from 1.2.3.4" though, but HTTP request can still land on other pool members.

 

Any hits or advise are much appreciated.

 

17 Replies