Q:

O HTTP/2 precisa de algo além da configuração no servidor para funcionar?

Já tenho o HTTP/2 configurado no servidor, testando pelo https://tools.keycdn.com/http2-test o resultado é:

HTTP/2 protocol is supported.
ALPN extension is supported.

Mas olhando pelo log de acesso vejo que todos os acessos continuam sendo pelo HTTP/1.1, nenhum pelo HTTP/2.
Tem algo que preciso fazer para os usuários começarem a acessar por HTTP/2, talvez mudar um header ou algo assim? Ou ainda depende de futuras atualizações dos navegadores para começar a valer? Btw, o servidor é apache, e a aplicação no server é em PHP.

A:

Conforme a documentação do Apache, você pode controlar as requisições PUSH através do cabeçalho de resposta Link. Isto é, se irá responder seu cliente com um arquivo HTML que depende de um arquivo CSS e outro JS, você pode enviá-los ao cliente através de PUSH antes que o mesmo necessite requisitá-los.
Você pode fazer isso diretamente na configuração do seu servidor, para cada rota
<Location /xxx.html>
    Header add Link "</xxx.css>;rel=preload"
    Header add Link "</xxx.js>;rel=preload"
</Location>

Ou simplesmente adicionar os cabeçalhos na resposta. Com PHP você é capaz disso através da função header:
<?php

header("Link </xxx.css>;rel=preload, </xxx.js>; rel=preload");

Assim, quando o cliente carregar sua página HTML já receberá também os arquivos CSS e JS.
Para o primeiro acesso, que cria a conexão com o servidor, basta informar a versão do HTTP durante a requisição:
GET / HTTP/2
Host: localhost

O navegador, possuindo suporte para o HTTP/2, já fará isso por conta. Você pode verificar isso nas ferramentas de desenvolvedor no seu navegador. Aqui, acessando uma página em um servidor com suporte ao HTTP/2, que envia via PUSH o arquivo CSS, ficou:

O valor h1 em Protocol indica HTTP/2 e para o arquivo CSS, segundo da lista, é possível ver Push como Iniciator da requisição.

