Best way to handle dynamic upstream backend?

Isaac Hailperin i.hailperin at heinlein-support.de
Fri Sep 21 14:08:52 UTC 2012


Hi,

I use nginx as a reverse proxy in front of about 20 apaches. Now in my 
backend, currently defined as

upstream backend_all {
	server 1.1.1.1;
	server 1.1.1.2;
...
	server 1.1.1.20;
}

i would like to include dynamic information about the health of the 
backend nodes.
If a backend server is down, it should be marked as down automatically. 
Or if a server is specifically busy, it should get less used as a backend.

I could implement a scrip which checks the backend and then generates 
the upstream definition accordingly. I would then have to reload nginx. 
(Would that generate timeouts for my users? - reload takes a few (aprox 
10) seconds as there are a lot of websites.). This seems not like the 
best solution to me, as I feel that nginx might have build in solution 
for this (?).

Also I have not only one nginx server, but four, so think I need to take 
care that these four distribute evenly to the backend. For this I was 
thinking of ip_hash.

Any suggestions on how to handle this?

Isaac



More information about the nginx mailing list