Forum Discussion

adharkrader's avatar
adharkrader
Icon for Nimbostratus rankNimbostratus
Aug 02, 2010

Fallback: which VS failed?

Since we were originally a Cisco shop, have a "sorry server" for all failed applications. In the Cisco environment, you still appear to be at the hostname you intended, so it's easy for the sorry page to be app-specific.

 

 

Since the F5 fallback is a redirect, how can I reproduce that app-specificity? I'd like to do it in a generic way from my parent profile, like changing the fallback host to } or ] or some such dynamic replacement, rather than tweaking the fallback host for every VS.

 

 

Anybody done anything like that? Some other method I'm overlooking?

 

 

Thanks - Al

13 Replies

  • hoolio's avatar
    hoolio
    Icon for Cirrostratus rankCirrostratus
    "They" is the browser not LTM. The client's user-agent is responsible for setting the Referer header. It's also optional according to RFC2616. I'd have thought most user agents would set the Referer header to the value of the last request though.

     

     

    Are you redirecting the client from an HTTPS VS to an HTTP fallback host? If so, it looks like most user-agents won't set the Referer header when going from HTTPS to HTTP:

     

     

     

    http://tools.ietf.org/html/rfc2616section-15.1.3

     

     

    Clients SHOULD NOT include a Referer header field in a (non-secure)

     

    HTTP request if the referring page was transferred with a secure

     

    protocol.

     

     

     

    Aaron
  • Right you are, it looks like the browser is totally responsible for referer... I had seen code setting it on redirects, but it looks like the typical browser doesn't send it on to the redirected site.

     

     

    So, something dynamic I can hang as a page or query string looks like the way to go.

     

  • Hamish's avatar
    Hamish
    Icon for Cirrocumulus rankCirrocumulus
    What about an iRule using LB_FAILED event and using that to send an HTTP redirect?

    e.g. something like

    
    when LB_FAILED {
        HTTP::redirect "whereever?withparameters=whatever&you=like"
    
    }
    

    This is assuming LB_FAILED fires when poolmembers goes to 0 on the default pool and no other iRule selects a pool (Which it should, but I haven't tested it).

    H