Como fazer com que o HTTP / 2 funcione com um AWS ALB e Tomcat 9

4

Por isso, estou tendo dificuldade em fazer com que o HTTP / 2 funcione com a versão mais recente do balanceador de carga de aplicativo da AWS e com o Tomcat 9. Eu adicionei o <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" /> ao meu conector no tomcat (o conector 8080 padrão não criptografado). Quando acessei meu site por meio do LB, vejo o protocolo h2 sendo usado de acordo com o Chrome, mas quando olho meus logs de acesso, parece que tudo está usando HTTP1.1 10.0.3.103 - - [04/Nov/2016:01:23:47 +0000] "GET /login.html HTTP/1.1" 200 4916

    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" >
        <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
    </Connector>

Estou tentando ter certeza de que tudo está funcionando corretamente, e pelo que estou vendo, estou supondo que o LB está manipulando tudo como h2, então convertendo-o de volta para o http 1.1 no back end que obviamente não é exatamente o que estou procurando.

Só para esclarecer, o LB é meu concentrador de TLS e as conexões com meus servidores de back-end não são seguras.

    
por Zipper 04.11.2016 / 02:30

1 resposta

0

O ELB fala com um proxy em suas instâncias do ec2 em um ambiente de bean beans. com o tomcat você obtém o httpd. Parece que, neste ponto, o mod_http2 não é suportado / incluído no aws linux image. < / p>

se o mod_http2 estivesse presente, a configuração necessária ficaria assim

LoadModule http2_module modules/mod_http2.so

<IfModule http2_module>
    LogLevel http2:info
</IfModule>
    
por 28.04.2017 / 05:26