Forum Discussion

Amitabha_118500's avatar
Amitabha_118500
Icon for Nimbostratus rankNimbostratus
Jun 17, 2014

LTM Maintenance Page - HTTPS

Hi DevCentral Experts, I have a performance layer 4 HTTPS Virtual server.

 

I would like to serve a custom page when all pool members are down. What are my options?

 

I see that we can use F5 LTM to return a maintenance page with text and images to return when no pool members are available by following this article. https://devcentral.f5.com/wiki/iRules.LTMMaintenancePage.ashx This means that I would have to terminate SSL cert of LTM and make the virtual server standard with HTTP profile.

 

Is there other way to do it without ssl termination?

 

Thanks.

 

8 Replies

  • You could use the virtual command in an iRule to direct the traffic to a VS that does terminate the SSL and return the maintenance page but only if all Pool Members are down.

     

  • If you aren't terminating the SSL on the LTM, then you aren't going to be able to provide a direct maintenance page response. You can however direct client traffic to another pool in the event the one assigned to your virtual server has no available members. Ideally this maintenance_pool would contain one or more members that would serve up your maintenance page. Something like this:

    when CLIENT_ACCEPTED {
        if { [active_members [LB::server pool]] < 1} {
            pool maintenance_pool
        }
    }
    

    Terminating SSL will give you a wealth of additional options, if that's a possibility for you.

    • Amitabha_118500's avatar
      Amitabha_118500
      Icon for Nimbostratus rankNimbostratus
      when CLIENT_ACCEPTED { if { [active_members [LB::server pool]] < 1} { pool maintenance_pool } } Hi Cory, I have tried the iRule you provided and another similar iRule not working. I had the server admin shut down all the pool member. The Virtual server is showing "up" when I have the iRule attached to the VS. It's showing "down" when the iRule is disassociated. However when the iRule is associated, the load balance to maintenance page does not work. Does the maintenance page has to be listening on the same port as the main server? when CLIENT_ACCEPTED { if { [active_members [LB::server pool]] == 0} { pool maintenance_pool } }
    • Cory_50405's avatar
      Cory_50405
      Icon for Noctilucent rankNoctilucent
      The pool members you define in the maintenance_pool will determine which port the communications will be sent to. As long as your maintenance_pool members are listening on that port, then a page should be served. You may need to change the virtual server type to standard in order to make this work though.