Forum Discussion

Abtin_1112's avatar
Abtin_1112
Icon for Nimbostratus rankNimbostratus
Mar 01, 2011

not able to do a fallback from an HTTPS VS to a sorry page running HTTP

hi all,

 

 

i have no experience with irules, it would be great if somebody can help me to solve this problem.

 

i've already configured a vs with service port 443, a pool including two realservers etc

 

i need a redirect mechanism which is able to change the "https" requests into "http" for a specific host (sorry server) if all the group members are down.

 

any idea how can i do it?

 

 

many thanks

 

abtin

 

  • Hi Abtin,

    Do you have your sorry server configured in the main pool of servers? Are the main servers listening on 443 with a server SSL profile enabled on the virtual server? Does the sorry server listen on port 80?

    If so, you could set the priority on the sorry server to be lower than the main members. You can set the 'Priority Group Activation' to 'less than x' where x is the number of main servers in the pool. You could then use an iRule which disables serverside SSL (and persistence?) for the sorry server:

    http://devcentral.f5.com/wiki/default.aspx/iRules/lb__server

    http://devcentral.f5.com/wiki/default.aspx/iRules/persist

    http://devcentral.f5.com/wiki/default.aspx/iRules/ssl__disable

    
    when LB_SELECTED { 
    
        Check if the current selected server is less than the main pool members' priority 
       if { [LB::server priority] < 25 } {
    
           Disable serverside SSL
          SSL::disable serverside
    
           Disable persistence?
          persist none
       }
    }
    

    If I've misinterpreted your scenario, can you provide more detail on what you're trying to do?

    Thanks, Aaron
  • hi aaron,

     

     

    many thanks for your reply.

     

    - the real servers are in my main pool and are listening on 443 and there are no ssl profile

     

    - the monitor assigning to the main pool can only works with the main pool members. that is the reason why i can't act with changing of priority parameters.

     

    - there are two sorry servers listening on 80

     

    - i try to solve my problem with this irule, but this would work only for requests on port 80:

     

     

    when LB_FAILED {

     

    if { [active_members [LB::server pool]] != 0 } {

     

    HTTP::fallback "http://1.1.1.1/sorry1.htm"

     

    } else {

     

    HTTP::fallback "http://2.2.2.2/sorry2.htm"

     

    }

     

    }

     

     

    what can i do by sending the requests on port 443?

     

     

    cheers

     

    abtin