Nginx Proxy redirect to clients when upstreams are busy
Prasanna Khanapur
pskhanapur at gmail.com
Fri Dec 11 11:52:23 UTC 2015
Hi,
I have built a custom load balancer "my_loadbalancer" which load balances
request from end users.
-Ignore any syntax errors, if any-
upstream myservers {
my_loadbalancer;
server abc123;
server pqr123;
}
location XYZ {
proxy_pass http://myservers <http://abcdservers> ;
}
I have basically followed Emiller's Guide to get all this working.
"my_loadbalancer" loadbalances upstreams based on some conditions. Right
now, loadbalancer's "get_peer" function returns
(1) NGX_OK when it successfully finds upstream
(2) NGX_BUSY when it fails to find upstream.
In above case (1) works fine and client gets response and case (2) works
fine, loadbalancer sends the client a 502 Bad Gateway.
Now I want to do something more where I need help.
In case (2), instead of sending a 502, I would like loadbalancer to send a
redirect (either 301 or 302, not decided yet) so that client gets a
redirect and connects to completely different Loadbalancer.
I'm looking at ngx_http_upstream_connect() in ngx_http_upstream.c where
return from loadbalancer is handled. I dont see a simple way to make it
generate redirect response.
I want to do this programtically because the different loadbalancer
instance which I want the client should connect to(indicated through
redirect) is decided on the fly.
Anyone has any inputs/suggestions ? Thanks!
Regards
Prasanna
--
Best Regards
Prasanna Khanapur
Oslo, Norway
Mobile: +4795417774
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx-devel/attachments/20151211/08d8e4d8/attachment.html>
More information about the nginx-devel
mailing list