Forum Discussion

Moayad_Hamdan_3's avatar
Moayad_Hamdan_3
Icon for Nimbostratus rankNimbostratus
Dec 04, 2016

URL and IP check iRule

Hi all i have the following code: when CLIENT_ACCEPTED { set poolDefault [LB::server pool] } when HTTP_REQUEST { set path [string tolower [HTTP::path]] if { $path contains "/g2b"} { po...
  • VernonWells's avatar
    Dec 04, 2016

     

    when HTTP_REQUEST {
        switch -glob [HTTP::path] {
            "*/g2b*" { pool G2B_Pool }
            "*/portal/g2c*" { pool G2C_Pool }
            "*/_layout/15*" {
                if { [IP::client_addr] matches_glob "10.10.10.1\[01\]" } {
                    pool G2B_Pool
                }
            }
        }
    }
    

     

    I removed the CLIENT_ACCEPTED code because, unless poolDefault is actually utilized elsewhere. I also removed the default branch (the else clause in the original code). If the pool associated with the Virtual Server is already set to B2B_Pool, then the default branch is redundant. Finally, I removed the string tolower for the path. Whether it makes sense depends on the path semantics for the webserver. See the Analysis section in this recipe for more details: