Forum Discussion

harton's avatar
Icon for Nimbostratus rankNimbostratus
Feb 23, 2011

Host to pool mapping

Hello, we are running version 9.4.6, and I've been asked to see if there is a way to map hosts to pools to reduce the number of public IPs we use.



Previously, we were doing the normal, but do to an application change we now have to specify the customer in the host.




We currently have to configure a separate public VIP for each one of our customers. We would like to be able use only one public IP, but be able to direct the customer to a specific pool based on the host. Here's an example:
 send to pool1 send to pool2 send to pool3








Here's one idea I had, but it's not scalable if I have a lot of customers.






switch -glob [string tolower [HTTP::host]] {


if { [HTTP::host] starts_with "customer1" } {


pool pool1


elseif { [HTTP::host] starts_with "customer2" } {


pool pool2


elseif { [HTTP::host] starts_with "customer3" } {


pool pool3









Is there a better way to do this? I have about 50 customers I need to configure this for.








2 Replies

  • Either a switch statement or a datagroup mapped to pool name as value would be my choices.

    In the example above, you don't actually use both the switch statement and the if/else. It would look like this:

     when HTTP_REQUEST { 
         switch -glob [string tolower [HTTP::host]] { 
               "customer1*" { pool pool1 } 
               "customer2*" { pool pool2 } 
               "customer3*" { pool pool3 } 

    If there's a character mapping between customer and pool, you could make this extremely easy...where something like "customerx = poolx"
  • harton's avatar
    Icon for Nimbostratus rankNimbostratus
    Wow. This looks simple enough. I'll give it a try. I was way over thinking this one.



    Thanks for the quick reply.