> On 14 Dec 2016, at 20:50, Maxim Dounin <[email protected]> wrote: > > Hello! > > On Wed, Dec 14, 2016 at 08:06:31PM +0300, Dmitry Sivachenko wrote: > >>> On 14 Dec 2016, at 19:59, Maxim Dounin <[email protected]> wrote: >>> >>> Если в конфиге действительно proxy_pass на имя - то при чём тут >>> resolver? Первыми будет использоваться IPv4-адреса из-за порядка >>> сохранения записей, который случается в ngx_inet_resolve_host(). >>> >>> Однако как и в случае resolver'а - порядок ни на что не влияет, >>> кроме, может быть, отдельных краевых эффектов, т.к. все полученные >>> адреса будут использоватся и запросы между ними будут >>> балансироваться по round-robin. >> >> Допустим, что nginx работает на ipv6-only сервере, а some.ip (аргумент >> proxy_pass) -- имеет и A, и AAAA. >> Я не хочу чтобы nginx вообще пытался устанавливать соединение к ipv4-адресу. > > Если у вас ipv6-only сервер - так и будет, т.к. nginx использует > getaddrinfo() с флагом AI_ADDRCONFIG, и неподдерживаемые адреса > система просто не вернёт nginx'у.
В моем случае на машине настроены ipv4-over-ipv6 туннели, так что реально ipv4-адреса на интерфейсе есть, но роутинг работает только для ipv6. Раз используется getaddrinfo(), то эта функция как раз возвращает адреса в нужном порядке (учитывает ip6addrctl_policy). Так что кажется что проблема лишь в ---------- Первыми будет использоваться IPv4-адреса из-за порядка сохранения записей, который случается в ngx_inet_resolve_host(). ---------- Если сохранять порядок, возвращаемый getaddrinfo(), то будет то поведение, которое нужно. _______________________________________________ nginx-ru mailing list [email protected] http://mailman.nginx.org/mailman/listinfo/nginx-ru
