You should be able to configure a monitor to check the status of the nodes and only mark the node down if it doesn't get a successful response from the server over the span of the timeout period. This is standard functionality that monitors provide.
It sounds like you may need to customize the monitor configuration to allow the BIG-IP to successfully check the status of the nodes.
To determine what response the node sends try testing from the command line of the BIG-IP using curl or telnet. To send a request using curl try a request formatted like this:
curl http://NODE_IP_ADDRESS:port/path/to/index.html
curl with no flags will return the HTTP content. You can use the -I flag to just return the HTTP headers (including the HTTP response code). Verify using curl -I ... that the node responds to the request with an HTTP 200 OK response. Note that :port is only needed if your node is not running on port 80. /path/to/index.html can be replaced with the path to an actual object on the node.
If the server performs header validation, you may need to use the host name in the request:
curl -I http://HTTP_HOST:port/path/to/index.html
You can then configure a custom HTTP monitor with the following send and receive string:
send:
GET / HTTP/1.1\r\nHost: HTTP_HOST:port\r\nConnection: close\r\n
Receive:
200 OK
BIG-IP logs monitor activity to /var/log/ltm. So you can check
Here is a related solutions from AskF5:
Click here
For details on monitor configuration options, check the Configuration Guide for your version:
Click here
If you run into any problems, Support should be able to help you further.
Aaron