proxy_pass behavior
Jim Popovitch
jimpop at gmail.com
Thu Mar 27 17:50:48 UTC 2014
On Thu, Mar 27, 2014 at 1:27 PM, Maxim Dounin <mdounin at mdounin.ru> wrote:
> Hello!
>
> On Thu, Mar 27, 2014 at 01:12:18PM -0400, Jim Popovitch wrote:
>
>> On Thu, Mar 27, 2014 at 12:59 PM, Maxim Dounin <mdounin at mdounin.ru> wrote:
>> > Hello!
>> >
>> > On Thu, Mar 27, 2014 at 12:29:03PM -0400, Jim Popovitch wrote:
>> >
>> >> Should proxy_pass retry ipv4 if ipv6 fails? Currently (1.5.12), it
>> >> does not, and there is no way to force proxy_pass to always use ipv4.
>> >
>> > In no particular order:
>> >
>> > - The proxy_next_upstream is expected to retry by default.
>>
>> Yes, that works if the host name has 2 or more A OR 2 or more AAAA
>> records. proxy_next_upstream does not appear to transition to the
>> next protocol (i.e. from ipv4 to ipv6)
>
> It doesn't care about address family. As long as connect() to
> one address fails, it will try next one.
I will have to do some more tests, but so far 1.5.12 (debian wheezy)
does not appear to try the next one if the next one is a different
protocol family.
>> > - There _is_ a way to force proxy_pass to always use ipv4 - you
>> > should configure your system accordingly, and
>> > getaddrinfo(AI_ADDRCONFIG) as used by nginx will do the right
>> > thing. E.g., on Linux net.ipv6.conf.all.disable_ipv6 can be set
>> > to disable use of ipv6.
>>
>> :-) That's unacceptable!! :-) I don't want people to disable ipv6,
>> I want proxy_pass to use ipv6 and upon failure use ipv4. ;-)
>
> It was you who claimed that "there is no way to force proxy_pass
> to always use ipv4". There is.
What I was trying to claim was that there is no way to run nginx on
ipv4 and ipv6 yet force proxy_pass to use only ipv4. Of course you
can proxy bind to a v4 interface, but that doesn't scale with syncing
configs to multiple servers. Maybe it's time for a proxy_protocol
variable.....
-Jim P.
More information about the nginx-devel
mailing list