Choosing source-address for upstream connections

Bruno Prémont bruno.premont at
Fri May 17 12:57:00 UTC 2013

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.
  ip route add D0C::1234/128 src D0C::beaf ethX
  ip route add src


More information about the nginx mailing list