How Nginx behaves with "proxy_bind" and DNS resolver with non matching ip versions between bind ip and resolved ip?
mdounin at mdounin.ru
Mon Dec 29 16:48:44 UTC 2014
On Mon, Dec 29, 2014 at 02:36:55AM -0500, shmulik wrote:
> I'm working with the proxy module, and with a dns resolver configured. The
> traffic i'm using is both ipv4 and ipv6.
> I'm trying to understand Nginx behavior when using "proxy_bind" directive
> and when the resolver returns both ipv4 and ipv6 addresses.
> In particular i'd like to understand what happens when:
> 1. "proxy_bind" binds to an ipv6 address, and the resolver returns only ipv4
> addresses (and the other way around - binding to ipv4, resolving only to
> 2. "proxy_bind" binds to an ipv6 address, the resolver returns both ipv4 and
> ipv6 addresses, but the first attempted ip address is an ipv4 address (and
> the other way around - binding to ipv4, first attempted is ipv6).
> Can you please shed some light on this?
In either case nginx will call bind() syscall with the address
provided in the proxy_bind directive. If address family doesn't
match one used in the connection, this is expected to result in an
error. The error itself will be logged into error log, and 500
(Internal Server Error) will be returned to the client.
More information about the nginx