Forum Discussion

dubdub's avatar
dubdub
Icon for Nimbostratus rankNimbostratus
Apr 04, 2014

The HTTP monitor and IIS 7's null response for no default document

Environment: BIG-IP 6900, 11.4.0 HF3

 

I ran into an interesting situation today. I have a Windows server running IIS 7.5 that has directory browsing disabled and a list of default documents set. For a particular web site I was setting up in the LTM, there was no default document on the site that matched the IIS list. I chose the base http monitor for the config and was surprised to see the monitor constantly down, even though the web site was up and running.

 

I found that in IIS 7, it returns a null response (albeit with an HTTP status code of 200 - see http://forums.iis.net/t/1196744.aspx?IIS+returns+null+response+when+it+can+t+find+a+default+document+and+directory+browsing+is+not+installed) when directory browsing is disabled and no default document exists. Running a "curl -i http://" command from my LTM showed me the expected 200 response, but when I gathered a tcpdump of the monitor traffic, I saw the base "GET /" to the site IP, and nothing else in the conversation. So the monitor was correctly marking the pool member as down based on the response from IIS. Does that mean that the invocation of "GET /" in the monitor workflow is excluding HTTP headers from the conversation?

 

Thanks, Jen

 

3 Replies

  • nathe's avatar
    nathe
    Icon for Cirrocumulus rankCirrocumulus

    Jen,

     

    I wonder if it's something to do with the HTTP version. F5 monitors use HTTP 0.9 by default. You can change this in the monitor string by adding the version manually e.g. GET / HTTP/1.0 or GET / HTTP/1.1. If using 1.1 then you are required to add host and connection headers e.g.

     

    Host: www.yoursite.com Connection: close

     

    See sol2167 for more help.

     

    N

     

  • dubdub's avatar
    dubdub
    Icon for Nimbostratus rankNimbostratus

    Hi Nathan,

     

    That was most definitely the issue - I created another simple monitor with GET / but also specifying HTTP/1.1 and the necessary headers, and everything worked as expected. Thank you for clearing up a point of confusion for me!

     

    Thanks, Jen

     

    • nathe's avatar
      nathe
      Icon for Cirrocumulus rankCirrocumulus
      Good to hear. Thanks for the feedback