Forum Discussion

john4665f5's avatar
Icon for Nimbostratus rankNimbostratus
Apr 26, 2016

Default HTTP/HTTPS monitor acceptable HTTP status codes?



I've been digging through F5's LTM documentation, but I am not able to find anything solid on the default acceptable HTTP/HTTPS monitor status codes. What is the LTM expecting back using the default HTTP/HTTPS monitors from the servers residing in a pool or directly associated with the node?


Thank you, John


8 Replies

  • While it's not well documented, the HTTP monitor will accept any response (including 302's). However, you can control this behavior by using RegEx in the Receive String. For example, I use the following (and use HTTP >= 1.0):



    Which marks the monitor as up for any HTTP code 200-399.


    • john4665f5's avatar
      Icon for Nimbostratus rankNimbostratus
      Hello Theo, Thank you for the response. I've tested a 302 response and the node was marked down, but a 301 works just fine. I didn't get a chance to look further into like the bigd debugs, but I wonder if it was because the response was "302 Found" instead of a typical 302 temporary redirect. Just to clarify the reason for this question is not how to make the node available, I can modify the send/recv strings in a child monitor to pass the host header, 302, etc. and mark it up, but just curious as to what the default expected responses are. Thank you, John
    • Theo_12742's avatar
      Icon for Cirrus rankCirrus
      If that's the case, then I'll point you to the LTM monitors reference ( "Note: If you do not specify both a Send String and a Receive String, the monitor performs a simple service check and connect only."
    • john4665f5's avatar
      Icon for Nimbostratus rankNimbostratus
      Hello Theo, The default http monitor has a send string configured by default, so there is a send string, but no "recv" string. Based on that documentation the http monitor check is essentially a TCP monitor. Maybe I should contact F5 directly to find this answer. Thank you, John
  • At a minimum the default HTTP monitor send string is too simple. Change it to the following more specific string and you should see a difference:

    GET /redir.php HTTP/1.1\r\nHost: foo\r\n\r\n

    Obviously change the URI as required.

  • Take a look at these references:




    And most important:


    You can also use the default null Receive String value [""]. In this case, any content retrieved is considered a match. If both the Send String and Receive String fields are left empty, only a simple connection check is performed.