I have setup the following health probe to check for the existence of a specific web page. My intention is that when the web page is removed, the health check fails and the rserver status changes to 'out of service'. Unfortunately, when I remove the web page, I see the health check fail, and the rserver state change to 'PROBE-FAILED', however the rserver does not go 'out of service' and continues to respond to requests.
Can anyone see where I'am going wrong?
Health check probe config
probe http live_http_int interval 15 passdetect interval 60 request method get url /loadbalancer/internal.html expect status 199 201 open 10
rserver host Server1 description Server1 ip address 10.10.10.1 conn-limit max 4000000 min 4000000 probe live_http_int inservice rserver host Server2 ip address 10.10.10.2 conn-limit max 4000000 min 4000000 probe live_http_int inservice
I think you have to "force" the failed server to close the connection when it has failed. Otherwise it will still serve the available HTML pages.
Have a look at the "Configuring the ACE Action when a Server Fails" in the "Cisco Application Control Engine Module Server Load-Balancing Configuration Guide" and let me know if the following command helped:
On the ACE, when a probe goes down, the server will stop to receive new connections, but the currently established ones will remain.This is to allow connections to continue working if by any chance the server is still able to reply (for example, if the web page queried by the probes is different than the one requested by the client)
This behavior can be changed with the "failaction" command suggested by louis-philippe.lison, you can define "failaction purge" to immediately close all connections or "failaction reassign" to move the connections to a different rserver in the backend transparently to the client.