Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

what reverse proxy server will direct traffic to healthy servers whose health is based on a result string??

ideally i'd like something like dnsmadeeasy or ultradns - lol - but for reverse proxy

i have looked at pound, delegate, ha proxy, squid, varnish, nginx, apache, and cherokee but can't see that they will work - they only test for HTTP result code


client request is a reverse proxy

reverse proxy looks at "test.php" on server, and for result string "OK"

if the server is "OK" then proxy requests to them


share|improve this question

closed as off-topic by kasperd, womble Sep 20 '15 at 12:08

This question appears to be off-topic. The users who voted to close gave this specific reason:

If this question can be reworded to fit the rules in the help center, please edit the question.

Why wouldn't you just have them return an error code that indicates a server problem (like 500) if they're not ok, which can indicate to the proxy to use a different node? The extra health check request seems like unnecessary overhead. – Shane Madden Jun 8 '12 at 3:41
how do you get the proxy server to test a file? the http server running on the node is up - but a database is down. can these proxy servers test - where status.php is <php if(some test fails) header("HTTP/1.0 500 database down") else header("HTTP/1.0 200 database ok")?> – joshua paul Jun 8 '12 at 4:13
up vote 2 down vote accepted

I think you will find that Vanish can do this

It can do Load Balancing so based on this it should be able to do what you are after, I am sure Squid could do it but Vanish is a better reverse proxy in my view

Hope this helps.

share|improve this answer
yes - Varnish Backend Polling How to configure polling ¶ Polling is configured by adding a {{.probe}} member to the backend definition in VCL, for instance: backend b0 { .host = ""; .probe = { .url = "/probe.cgi"; .timeout = 34 ms; .interval = 1s; .window = 10; .threshold = 8; } } – joshua paul Jun 8 '12 at 4:16

Not the answer you're looking for? Browse other questions tagged or ask your own question.