A feature of F5 balancers is that they can pull individual destinations out of a pool when they respond incorrectly. One case is HTTP, where the service may work, i.e., connections are allowed and served on port 80/TCP, but the application responds incorrectly, for example with a 40X or 50X code.

F5 periodically queries each server in the pool, and in the default check it only checks if some content some content (whatever it is) is returned and that the port is open. To detect errors like 500 Internal Server Error, and to stop using those pool members, we need to create a new health check.

Create the health check

  • Local Traffic -> Monitors

Monitor

  • Name -> check_500
  • Type -> HTTP
  • Receive String -> HTTP/1.[01] [23]0[0-6]

Monitor

Install the monitor in the pool

  • Local Traffic -> Pools -> Pool List

Monitor

  • Configuration -> Basic
  • Select the monitor from the available list and move it to the selected list.

Monitor