IPv6 & IPv4 backend with proxy_bind

Ruslan Ermilov ru at nginx.com
Fri Nov 22 13:26:42 UTC 2013

On Tue, Nov 19, 2013 at 09:09:34PM +1030, SplitIce wrote:
> An IPv6 based fallback is not the only solution we want to support,
> ultimately we would like to be able to load-balance between them as well.
> An error_page based solution would not assist.
> I also get the feeling that such a hack would have large implications,
> while either an additional parameter or another directive would be a simple
> & clean solution to a real identified deficiency.
> This kind of request is only going to get more common with the growing
> adoption of IPv6.

You can make the currently selected peer address available as an nginx
variable, then use the "map" directive to compute the per-peer bind
address, like follows:

map $peer_addr $bind_addr {;
    2001:0db8::100 2001:0db8::1;

or like this:

map $peer_addr $bind_addr {
    ~:      2001:0db8::1;

Hint: the "proxy_bind" directive supports variables.

More information about the nginx-devel mailing list