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 {
    192.168.1.100  192.168.1.1;
    2001:0db8::100 2001:0db8::1;
    ...
}

or like this:

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

Hint: the "proxy_bind" directive supports variables.



More information about the nginx-devel mailing list