Como apontado na postagem do blog que você vinculou (e confirmou quando se transformou em documentos oficiais aqui ), o IIS só usará o protocolo HTTP / 2 quando uma conexão TLS tiver sido estabelecida com o servidor IIS.
Conforme implementado hoje no IIS 10, o HTTP / 2 é identificado usando o ALPN durante o handshake de TLS. Se não houver ALPN nem TLS, não haverá HTTP / 2. Veja esta conversa BUILD de 2015 a partir de 5'06 " e mantenha-se em Lembre-se que o IIS não implementa o mecanismo de atualização HTTP / 1.1 (como indicado em 8'46 "no vídeo).
Em seu cenário, é quase certo que o balanceador de carga estabelecerá conexões TCP claras e enviará solicitações HTTP / 1.1 para os servidores de backend. No momento em que o IIS pode até ver o cabeçalho x-forwarded-proto
, a conexão já foi estabelecida e o protocolo HTTP / 1.1 já foi identificado.
Agora, é possível que seu balanceador de carga possa suportar o próprio HTTP / 2, para que os navegadores de seus usuários finais possam multiplexar solicitações e respostas com o balanceador de carga enquanto os traduzem para solicitações e respostas HTTP / 1.1 nas suas costas -end servidores.
Também é possível que seu balanceador de carga possa estabelecer conexões TLS com os servidores de backend e usar o HTTP / 2, mas isso praticamente derrotaria o ponto de descarregamento do SSL.