Forum Discussion

speachey's avatar
speachey
Icon for Cirrus rankCirrus
Feb 21, 2020
Solved

default http monitor (v14.1.2.2) causing "HTTP/1.1 400 Bad Request" on pool member

the f5 marks the pool member as up, but sys admins are complaining about excessive "bad request" logs caused by the default f5 http monitor of a server.

 

vip service port: 80

pool listen port: 9292

no cookie/persistence set

http profile applied to vip for a logging irule

no encryption/ssl termination

 

it is a very simple config on the f5. I suspect the server perceives the http health check as a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing), but I haven't figured out why yet. I'm posting here before I go down the rabbit hole in hopes someone has seen this problem

  • Hi speachey,

     

    This is normally caused when the request doesn't comply with HTTP v1.1 standards, i.e. missing Host header. Considering this is the default monitor it's likely that your web server is expecting a more specific request.

    Two helpful ways to troubleshoot this issue is to enable logging on the pool member in question, and/or mimic the health monitor using cURL - see the man page for more details.

     

    Let me know if that helps.

     

    Kind regards

    Ben

2 Replies

  • Hi speachey,

     

    This is normally caused when the request doesn't comply with HTTP v1.1 standards, i.e. missing Host header. Considering this is the default monitor it's likely that your web server is expecting a more specific request.

    Two helpful ways to troubleshoot this issue is to enable logging on the pool member in question, and/or mimic the health monitor using cURL - see the man page for more details.

     

    Let me know if that helps.

     

    Kind regards

    Ben

  • thanks for the quick response Grumpy Cat! simply adding HTTP1.1 to the send string did the trick (GET / HTTP/1.1\r\n).