Como outros já mencionaram, o Cloudflare atualmente não fala HTTP / 2 para os servidores de origem, portanto, há pouca vantagem na implementação do HTTP / 2 em seu servidor de origem.
O principal benefício do HTTP / 2 é em conexões de baixa latência, como navegador para servidor, que você já tem no Cloudflare para servir recursos por HTTP / 2. Há menos benefícios para conexões entre servidores e servidores.
Além disso, a Cloudflare usa uma versão do Nginx e atualmente não suporta HTTP / 2 para o lado do servidor e Nginx afirmaram que não têm intenção de adicioná-lo :
Is HTTP/2 proxy support planned for the near future?
Short answer:
No, there are no plans.
Long answer:
There is almost no sense to implement it, as the main HTTP/2 benefit
is that it allows multiplexing many requests within a single
connection, thus [almost] removing the limit on number of simalteneous
requests - and there is no such limit when talking to your own
backends. Moreover, things may even become worse when using HTTP/2 to
backends, due to single TCP connection being used instead of multiple
ones.
On the other hand, implementing HTTP/2 protocol and request
multiplexing within a single connection in the upstream module will
require major changes to the upstream module.
Due to the above, there are no plans to implement HTTP/2 support in
the upstream module, at least in the foreseeable future. If you
still think that talking to backends via HTTP/2 is something needed -
feel free to provide patches.
Você pode concordar ou discordar com o acima, mas isso pareceu bastante definitivo quando foi escrito (em 2015) e não viu uma atualização desde então, embora o pedido de ingresso para isso foi reaberto há 4 meses e foi deixado em aberto.
Isso não quer dizer que o Cloudflare não vá em frente e faça isso por conta própria ( como o fez com o Server Push antes que o Nginx suportasse isso ), mas eu diria que é menos provável que, enquanto a plataforma principal na qual eles são baseados, não suporte isso.
Finalmente você afirma que está no Centos 7.3. Isso tem uma versão mais antiga do OpenSSL (1.0.1) que não suporta ALPN necessária para permitir HTTP / 2 para navegadores baseados no Chromium (Chrome e Opera) e possivelmente mais clientes HTTP / 2 no futuro, então isso pode ser necessário com uma implementação futura para o Cloudflare. O muito recentemente lançado Centos 7.4 inclui o OpenSSL 1.0.2 que suporta ALPN na teoria, mas as versões empacotadas do Nginx no momento da escrita ainda são compiladas com a versão antiga, o que não ajuda (ainda). Veja esta postagem do blog para mais detalhes . Portanto, não é apenas uma questão de atualizar o Nginx, mas também o sistema operacional e / ou OpenSSL e, mesmo assim, isso não ajudará no momento. Claro que há maneiras de contornar isso (instalar a partir do código-fonte, rodá-lo em uma imagem do Docker ... etc.), mas se você disser que o custo para atualizar o Nginx sozinho é significativo, então imagino que esse material extra realmente vai colocar um prego naquele caixão.
No geral, eu diria que deixem bem o suficiente por enquanto e aproveitem o fato de você ter suporte HTTP / 2 fornecido e cuidado pela Cloudflare. Na verdade, uma das maneiras mais simples de obter o HTTP / 2, considerando todos os problemas mencionados acima, é usar um serviço como o Cloudflare e não se incomodar em implementar isso em sua própria infraestrutura.