Поддержка HTTP/2 в Tomcat 8
После некоторых исследований я был удивлен тем, что я не нашел никакого ресурса в поддержке HTTP/2 в Tomcat. Список изменений 8.0 указывает на экспериментальную поддержку SPDY, а wiki ссылается на HTTP/2 в качестве поддерживаемой спецификации (http://wiki.apache.org/tomcat/Specifications), но я не найти любой учебник по нему.
Знаете ли вы, возможно ли включить HTTP/2 на Tomcat? Если да, то как я могу это сделать?
Ответы
Ответ 1
Tomcat еще не поддерживает HTTP/2.
Поддержка HTTP/2 запланирована для Tomcat 9 и далее. Он может вернуться к предыдущим версиям.
Экспериментальная поддержка SPDY была такой: экспериментальной. Он работал, в то время как браузеры поддерживали конкретную версию SPDY, но ни один браузер не поддерживает версию SDPY, реализованную Tomcat.
Эта экспериментальная поддержка SPDY была удалена из Tomcat 8.0.22, отмеченной в changelog.
Ответ 2
Tomcat 8.5 был выпущен с функциями, перенесенными с Tomcat 9, и включает поддержку HTTP/2.
У меня лично не было возможности установить HTTP/2 на Tomcat 8.5, поэтому я не могу прокомментировать "как".
Ответ 3
Поддержка HTTP/2 теперь доступна в Tomcat. Tomcat-8.5 поддерживает HTTP/2. Чтобы включить HTTP/2 в tomcat-8.5 или выше, вам необходимо обновить протокол соединителя в файле server.xml в папке tomcat conf.
<Connector ... >
<UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
</Connector>
Вам также необходимо настроить конфигурацию своих сертификатов SSL для работы с этим соединителем.
Ответ 4
чтобы включить http2 для tomcat8.5.x,
@Bean
public EmbeddedServletContainerCustomizer tomcatCustomizer() {
return container -> {
if (container instanceof TomcatEmbeddedServletContainerFactory) {
((TomcatEmbeddedServletContainerFactory) container).addConnectorCustomizers((connector) -> {
connector.addUpgradeProtocol(new Http2Protocol());
});
}
};
}