Forum Discussion

YossiV's avatar
YossiV
Icon for Nimbostratus rankNimbostratus
Feb 24, 2016

forward request to virtual server base on header on the url

Dear community is there any option to make an irule or any other option so if a customer comes to the virtual server it will navigate him to specific pool but base on the header he comes .

 

i mean if header contain the word "report" it will go to specific pool and if it will contain "deposit" it will go to diffident pool.

 

just to explain the issue. the URL that customers coming with can contain request to report or request to deposing money. but sometimes the reports cussing the internal serves to be overloaded and because of that the deposit is fail due response time to the servers . we want to separate the server environment so report will go to 1st pool and deposit to 2nd . like that the deposit wont impact . 10x for the help

 

3 Replies

  • BinaryCanary_19's avatar
    BinaryCanary_19
    Historic F5 Account

    example:

    when HTTP_REQUEST {
      if {[HTTP::path] starts_with "/reports" } {
          pool report_pool
      } elseif { [HTTP::path] starts_with "/deposits" } {
          pool deposit_pool
      } and so on.
    }
    

    But i think it might be better to instead replicate your servers so that you have a lot more of them, and then use pool member connection limits to avoid over-loading each particular server. But it's the call of your developers and architects.

  • Hi Yossi Vainbrand,

    I would like to asume the "header" you are refering to, is the "HOST-header" (aka. http://report.domain.de/), right? If so then use the iRule below as a starting point..

    when HTTP_REQUEST {
        if { [string tolower [HTTP::host]] equals "report.domain.de" } then {
            pool pool_report
        } else {
            pool pool_default
        }
    }
    

    Cheers, Kai