Per ascoltare sulla stessa porta per IPv6 e IPv4, utilizzare questo:
bind :::80 v4v6
Certo, questa era un'ipotesi intuitiva che sembra essere stata corretta ... ma piuttosto che pubblicare una supposizione "fortunata" come risposta, anche se funziona, sembra che dovrei giustificarla.
la parola chiave v4v6 fa associare haproxy solo a un socket v4.
La mia prima intuizione è stata che non è v4v6
ma piuttosto l'uso di :80
(o, più precisamente, l'uso di nessun indirizzo IP, solo un numero di porta) che fa sì che questo socket ascolti solo su IPv4.
Questo sembra essere confermato nei documenti per bind
:
address
è facoltativo e può essere un nome host, un indirizzo IPv4, un indirizzo IPv6 o '*'
. Indica l'indirizzo su cui il frontend ascolterà. Se non impostato, verranno ascoltati tutti gli indirizzi IPv4 del sistema. Lo stesso vale per '*'
l'indirizzo speciale " 0.0.0.0
" del sistema. L'equivalente IPv6 è '::'.
http://cbonte.github.io/haproxy-dconv/configuration-1.6.html#4.2-bind (enfasi aggiunta)
Quindi i tre moduli seguenti sono tutti equivalenti e sono tutti interpretati come IPv4 da HAProxy:
bind :80
bind *:80
bind 0.0.0.0:80
Successivamente, c'è una frase nei documenti per v4v6
potrebbe essere letta in modo isolato per indicare che v4v6
potrebbe essere utilizzabile per estendere una delle istruzioni di bind sopra per ascoltare su IPv6 ...
v4v6
Viene utilizzato per associare un socket a IPv4 e IPv6 quando utilizza l'indirizzo predefinito.
... hmmm, ma sospetto che ciò significhi in realtà "l'indirizzo predefinito v6" ( ::
) ...
Ciò è talvolta necessario sui sistemi che si legano a IPv6 solo per impostazione predefinita.
... e ora lo sospetto ancora di più ...
Non ha alcun effetto sui socket non IPv6 ed è sovrascritto v6only
dall'opzione.
http://cbonte.github.io/haproxy-dconv/configuration-1.6.html#5.1
Quindi, sembra che v4v6
modifichi solo le bind
direttive che specificano l'indirizzo di ascolto predefinito IPv6, che è ::
(il terzo :
è il separatore tra l'indirizzo e la porta) e viene ignorato per gli altri.
bind :::80 v4v6
?