Choosing source-address for upstream connections

Ruslan Ermilov ru at nginx.com
Fri May 17 13:17:20 UTC 2013


On Fri, May 17, 2013 at 02:57:00PM +0200, Bruno Prémont wrote:
> Is there a way to tell nginx to use a specific address when talking to
> an upstream?
> 
> I would like to do something like:
> 
> upstream bla {
> 	server [D0C::1234]:8080 src [D0C::beaf];
> 	server 1.2.3.4:8080 src 1.2.3.5;
> 	server upstream.example.tld src site.example.tld;
> }
> 
> 
> My system has multiple local addresses and just one of them should be
> used to contact the given upstream.
> 
> 
> If host-name is provided the source address should be chosen of the
> same address family as the upstream address (so it's not necessary to
> explicitly state IP addresses and duplicate server entries for IPv4
> and IPv6).
> 
> 
> It's possible to do it via "src" attribute of routes though it would be
> more clean to do it on the application side.
> e.g.
>   ip route add D0C::1234/128 src D0C::beaf ethX
>   ip route add 1.2.3.4/32 src 1.2.3.5

http://nginx.org/r/proxy_bind

This is the only option so far.  Per-server per-upstream source address
selection isn't currently possible.



More information about the nginx mailing list