Choosing source-address for upstream connections

Ruslan Ermilov ru at
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 src;
> 	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 src

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