0

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

scenario

client request www.aaa.com

www.aaa.com is a reverse proxy

reverse proxy looks at "test.php" on server 1.aaa.com, 2.aaa.com and 3.aaa.com for result string "OK"

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

help!

Reaces
  • 5,547
  • 4
  • 36
  • 46
joshua paul
  • 123
  • 1
  • 1
  • 7
  • 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 08 '12 at 03: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 http://host.aaa.com/status.php - where status.php is – joshua paul Jun 08 '12 at 04:13

1 Answers1

2

I think you will find that Vanish can do this
https://www.varnish-cache.org/

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
https://www.varnish-cache.org/trac/wiki/LoadBalancing

Hope this helps.

djo
  • 397
  • 2
  • 4
  • 12
  • yes - [Varnish Backend Polling](https://www.varnish-cache.org/trac/wiki/BackendPolling) How to configure polling ΒΆ Polling is configured by adding a {{.probe}} member to the backend definition in VCL, for instance: backend b0 { .host = "phk.freebsd.dk"; .probe = { .url = "/probe.cgi"; .timeout = 34 ms; .interval = 1s; .window = 10; .threshold = 8; } } – joshua paul Jun 08 '12 at 04:16